SQL Server中授予用户查看对象定义的权限   在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数.视图授予查看定义的权限,那么就像下面脚本所示,比较繁琐: GRANT VIEW DEFINITION ON  YOUR_PROCEDURE TO   USERNAME; GRANT VIEW DEFINITION ON  YOUR_FUNCTION TO USERNAME; GRANT VIEW D…
--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_helpuser 'public' -- 查询哪些用户拥有指定的系统role exec sp_helpsrvrolemember 'sysadmin' -- 可查询嵌套role WITH tree_roles as ( SELECT role_principal_id, member_principa…
 目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, delete, create table ...). 假设,我们准备建立一个 dba 数据库帐户,用来管理数据库 mydb. 1. 首先在 SQL Server 服务器级…
参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, delete, create table ...). 假设,我们准备建立一个 dba 数据库帐户,用来管理数据库 mydb. 1. 首先在 SQL Server 服务器级别,创建登陆帐户(cr…
1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login) --创建登陆帐户(create login) create login dba with password='abcd1234@', default_database=mydb 登陆帐户名为:“dba”,登陆密码:abcd1234@”,默认连接到的数据库:“mydb”. 这时候,dba 帐户就可以连接到 SQL Server 服务器上了.但是此时还不能 访问数据库中的对象(严格的说,此时 dba 帐户默认是…
1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login) --创建登陆帐户(create login) create login dba with password='abcd1234@', default_database=mydb 登陆帐户名为:“dba”,登陆密码:abcd1234@”,默认连接到的数据库:“mydb”. 这时候,dba 帐户就可以连接到 SQL Server 服务器上了.但是此时还不能 访问数据库中的对象(严格的说,此时 dba 帐户默认是…
  在数据库的应用系统中,死锁是不可避免的.通过设置死锁的处理优先级方法,可以在数据库引擎中自动检测到死锁,对发生的死锁会话进行干预,从而达到解除死锁的目点,但在这种情况下,会话只能被动的等待数据库引擎的自我检查. 我们是否可以让会话自身也拥有处理死锁的主动权呢?这就是设置锁的超时时间.当一个会话与另一个会话冲突引阻塞时,如果等待的时间超过指定的值,则该会话自动取消,并释放数据库资源.这样,就达到了解决死锁的目的. 那么如何来查看锁的超时时间呢?利用@@lock_timeout函数即可: 可以看…
1.表(Table ) 数据库中的表与我们日常生活中使用的表格类似,它也是由行(Row) 和列(Column)组成的.列由同类的信息组成,每列又称为一个字段,每列的标题称为字段名.行包括了若干列信息项.一行数据称为一个或一条记录,它表达有一定意义的信息组合.一个数据库表由一条或多条记录组成,没有记录的表称为空表.每个表中通常都有一个主关键字,用于惟一地确定一条记录. 2.索引(Index) 索引是根据指定的数据库表列建立起来的顺序.它提供了快速访问数据的途径,并且可监督表的数据,使其索引所指向的…
一.注释中带某关键字的对象 主要用到 sys.tables .sys.columns .sys.procedures  系统对象表以及sys.extended_properties 扩展属性表 --查询列 SELECT A.name AS table_name , B.name AS column_name , C.value AS column_description FROM sys.tables A INNER JOIN sys.columns B ON B.object_id = A.o…
有时候我们作为SQL Server的DBA,会需要查找每个数据库的Owner是哪个SQL Server账户,也就是谁创建的. 我们可以使用系统存储过程"sys.sp_helpdb",查询到每个数据库的Owner是哪个SQL Server账户: EXEC sys.sp_helpdb 结果如下: 通过查询结果中的owner列,我们就可以知道每个数据库的Owner是哪个SQL Server账户,也就是谁创建的.…