sql server 创建角色,用户,权限

来源:互联网 发布:程序员十大软件 编辑:程序博客网 时间:2024/04/30 04:06

/*--示例说明
        示例在数据库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 表的所有权限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON 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 权限
DENY SELECT ON 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'



登录、用户、角 色和组是 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

更改登录的默认语言

sp_droplogin

删除 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® 用户或组的登录项。

xp_logininfo

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


原创粉丝点击