-
使SQL用户只能看到自己拥有权限的库(图文教程)
以SQLServer2012为例上图是部分数据库的截图,我们执行复制代码代码如下:DENYVIEWanyDATABASEtoPUBLIC;然后给Best库的Best用户执行复制代码代码如下:ALTERAUTHORIZATIONONDATABASE::BestTOBest资源管理器中Best用户登陆后就只能显示Best库了,同样给Mine库的Mine用户执行相同SQL复制代码代码如下:ALTERAUTHORIZATIONONDATABASE::MineTOMineMine用户登录后也只能显示Mine数据库了,达到了咱的目的,分配权限的时候记得给对应用户映射对应数据库的权限,防止跨库操作....
数据库操作教程 2022-09-23 16:56:47 -
用户"sa"登陆失败SQLServer错误18456的解决方法
用windows账号还是可以登录的。查找问题的过程:第一步:启动所有与SQL有关的服务,问题依旧;第二步:查看windows防火墙,被默认启动了,不启动选择项被Disabled...
数据库操作教程 2022-09-23 16:54:10 -
SQLServer自动更新统计信息的基本算法
自动更新统计信息的基本算法是:·如果表格是在tempdb数据库表的基数是小于6,自动更新到表的每个六个修改。·如果表的基数是大于6,但小于或等于500,更新状态每500的修改...
数据库操作教程 2022-09-23 16:50:50 -
SQLServer优化50法汇总
查询速度慢的原因很多,常见如下几种:1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2.I/O吞吐量小,形成了瓶颈效应。3.没有创建计算列导致查询不优化...
数据库操作教程 2022-09-23 16:47:10 -
如何恢复数据库的账号登录名/用户名等
当我们重装系统,或者是重装数据库之后,当附加数据库之后,发现数据库里面有用户名,但是在sqlserver里面没有登陆名例如先看 用户名 是有他上次系统的用户名的现在我们先去添加这个登录名点击取消进入查询分析器,选择你要修复的数据库sp_change_users_login'report' 这个可以查询当前数据库下的孤立用户 我们只需要选择当前数据库为你要修复的数据库,然后运行sp_change_users_login'update_one','用户名','登录名' 系统就会提示修复了一个孤立用户。重新刷新数据库的用户,会看到用户名和登录名对应了...
数据库操作教程 2022-09-23 16:47:05 -
获取MSSQL表结构中字段的备注、主键等信息的sql
1、MSSQL2000复制代码代码如下:SELECT表名=casewhena.colorder=1thend...
数据库操作教程 2022-09-23 16:46:40 -
sqlserver数据库获取数据库信息
MSSQLSERVER获取当前数据库文件等信息,适用于多个版本:复制代码代码如下:SELECTdbf.file_idASFileID ,dbf...
数据库操作教程 2022-09-23 16:46:00 -
一条SQL语句修改多表多字段的信息的具体实现
之前修改两张及以上表的时候,总得需要用几次语句才修改,万一其中一条没修改上,又没事务机制的话,处理很麻烦,于是想到能不能一条语句完成呢?结果是成功的~~多表多字段的时候,得用到表关联的方式修改信息:复制代码代码如下:UPDATE`user`join`binding`on`user`.`uid`=`binding`.`uid`SET`user`.`renren`="",`binding`.`renren_token`="",`binding`.`rt_time`=""WHERE`user`.`uid`='.$in['uid'];语法类似上面所表示的。还有没有更好的解决方法,还有待莫离进一步研究...
数据库操作教程 2022-09-23 16:45:54 -
sqlserver因为选定的用户拥有对象,所以无法除去该用户的解决方法
现象:把之前备份的数据库还原到现在的SQL数据库中,现在要把数据库中的用户删除掉,结果却提示:因为选定的用户拥有对象,所以无法除去该用户解决办法:1.打开企业管理器,展开服务器,右键点击本地服器,属性:打开SQLServer属性(配置)窗口2.选择常规窗口选择服务器设置窗口,将允许对系统目录直接进行修改选上,确定。4.展开数据库,看到数据库系统表sysusers,右键--打开表--返回所有行:5.选择数据库中要删除的用户,找到相关行,点右键删除:选择是,最后再返回第二步,把允许对系统目录直接进行修改前面的勾去掉...
数据库操作教程 2022-09-23 16:44:40 -
SQLServer怎么找出一个表包含的页信息(Page)
前言在SQLServer中,如何找到一张表或某个索引拥有那些页面(page)呢?有时候,我们在分析和研究(例如,死锁分析)的时候还真有这样的需求,那么如何做呢?SQLServer2012提供了一个无文档的DMF(sys.dm_db_database_page_allocations)可以实现我们的需求,sys.dm_db_database_page_allocations有下面几个参数: @DatabaseId: 数据库的ID,可以用DB_ID()函数获取某个数据库或当前数据库的ID @TableId: 表的ID。我们可以使用OBJECT_ID()函数通过表名获取表ID...
数据库操作教程 2022-09-23 16:43:51 -
SQLServer正确删除Windows认证用户的方法
前言在SQLServer数据库中,有时候会建立一些Windows认证的账号(域账号),例如,我们公司习惯给开发人员和Support同事开通NT账号权限,如果有离职或负责事宜变更的话,那么要如何正确的删除这些Windows认证账号呢?这篇文章就是来探讨一下如何正确的删除Windows认证账号。如下所示:下面这种方式,仅仅是删除登录名(login),然而并没有删除用户(User)USE[master]GODROPLOGIN[xxxxxxx]GO你删除登录名的时候,就会遇到类似下面的告警信息:Deletingserverloginsdoesnotdeletethedatabaseusersassociatedwiththelogins.Tocompletetheprocess,deletetheusersineachdatabase.Itmaybenecessarytofirsttransfertheownershipofschemastonewusers.也就是说,虽然你删除了登录名,但是对应用户数据库或系统数据库相关的User权限并没有清理,在SQLServer中登录名(ServerLo...
数据库操作教程 2022-09-23 16:42:18 -
SQLServerEVENTDATA()函数来获取DDL触发器信息
复制代码代码如下:--CreatealogtableCREATETABLETriggerLog(LogInfoxml)--CreateadummytabletodeletelateronCREATETABLETableToDelete(IdintPRIMARYKEY)--新建一个新表,作为删除实验表INSERTINTOTableToDeleteVALUES(1)GO--创建一个DropTable的DDLCREATETRIGGERStopTableDropONDATABASEAFTERDROP_TABLEASDECLARE@EventDataASxmlSET@EventData=EVENTDATA()--必须要在rollback之前截获DDL信息ROLLBACKPRINT'DROPTABLEattemptindatabase'+DB_NAME()+'.'INSERTINTOTriggerLogVALUES(@EventData)执行如下删除操作:DROPTABLETableToDelete会触发上面的DDL,从而回滚操作。执行下面的Sql:SELECT*FROMTriggerLog查看刚...
数据库操作教程 2022-09-23 16:41:39