创建角色,用户,权限

/* --示例说明
        示例在数据库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_grantloginsp_denylogin 创建的 Microsoft Windows NT? 用户或组的登录项。

DE>xp_logininfoDE>

报告帐户、帐户类型、帐户的特权级别、帐户的映射登录名和帐户访问 Microsoft? SQL Server? 的权限路径