创建角色,用户,权限
/*
--示例说明
示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test
随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限
最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。
经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs的所有权限。
--*/
USE
pubs
--创建角色 r_test
EXEC sp_addrole 'r_test'
--授予 r_test 对 jobs 表的所有权限
GRANTALLON jobs TO
r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANTSELECTON titles TO
r_test
--添加登录 l_test,设置密码为pwd,默认数据库为pubs
EXEC sp_addlogin 'l_test','pwd','pubs'
--为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess 'l_test','u_test'
--添加 u_test 为角色 r_test 的成员
EXEC sp_addrolemember 'r_test','u_test'
--拒绝安全账户 u_test 对 titles 表的 SELECT 权限
DENYSELECTON titles TO
u_test
/*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以l_test无titles表的select权限--*/
--从数据库 pubs 中删除安全账户
EXEC sp_revokedbaccess 'u_test'
--
删除登录 l_test
EXEC
sp_droplogin
'
l_test
'
--
删除角色 r_test
EXEC
sp_droprole
'
r_test
'
几个SQL server登陆,登录,用户,角色和组用到的系统存储过程
登录、用户、角色和组是 Microsoft? SQL Server? 2000 安全机制的基础。连接到 SQL Server 的用户必须使用特定的登录标识符 (ID) 标识自己。因此,用户只能查看经授权可以查看的表和视图,并且只能执行经授权可以执行的存储过程和管理功能。这一安全系统基于用来标识用户的 ID。
sp_addlogin
创建新的 SQL Server 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例
sp_addrole
在当前数据库创建新的 SQL Server角色
--什么是角色???
例如,一个公司可能成立慈善活动委员会,其中包括来自不同部门,来自组织中各种不同级别的职员。这些职员需要访问数据库中特殊的项目表。没有只包括这些职员的现有 Windows NT 4.0 或 Windows 2000 组,而且没有其它理由在 Windows NT 4.0 或 Windows 2000 中创建这样一个组。可以为此项目创建一个自定义 SQL Server 数据库角色 CharityEvent,并将个别的 Windows NT 和 Windows 2000 用户添加到此数据库角色。当应用权限后,数据库角色中的用户便获得对表的访问权限。其它数据库活动的权限不受影响,只有 CharityEvent 用户可以使用该项目表。
SQL Server 角色存在于一个数据库中,不能跨多个数据库。
使用数据库角色的好处包括:
1.对于任何用户,都可以随时让多个数据库角色处于活动状态.如果所有用户、组和角色都在当前数据库中,则 SQL Server 角色可以包含 Windows NT 4.0 或 Windows 2000 组和用户,以及 SQL Server用户和其它角色。
2.在同一数据库中,一个用户可属于多个角色。
3.提供了可伸缩模型以便在数据库中设置正确的安全级别。
说明:数据库角色要么在创建角色时由明确指定为所有者的用户所拥有,要么在未指定所有者时为创建角色的用户所拥有。角色的所有者决定可以在角色中添加或删除谁。但是,因为角色不是数据库对象,不能在同一数据库中创建由不同用户所拥有的多个同名角色。
sp_addrolemember
将安全帐户作为当前数据库中现有 Microsoft? SQL Server? 数据库角色的成员进行添加。
sp_adduser
为当前数据库中的新用户添加安全帐户。
sp_defaultdb
更改登录的默认数据库
sp_defaultlanguage
更改登录的默认语言
DE>sp_droploginDE>
删除 Microsoft? SQL Server? 登录,以阻止使用该登录名访问 SQL Server
sp_grantlogin
使 Microsoft? Windows NT? 用户或组帐户得以使用 Windows 身份验证连接到 Microsoft SQL Server?。
sp_helpuser
报告有关当前数据库中 Microsoft? SQL Server? 用户、Microsoft Windows NT? 用户和数据库角色的信息
sp_password
添加或更改 Microsoft? SQL Server? 登录的密码
sp_revokelogin
从 Microsoft? SQL Server? 中删除用 sp_grantlogin 或 sp_denylogin 创建的 Microsoft Windows NT? 用户或组的登录项。
DE>xp_logininfoDE>
报告帐户、帐户类型、帐户的特权级别、帐户的映射登录名和帐户访问 Microsoft? SQL Server? 的权限路径