首页 > 代码库 > Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色

Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38844999,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

        前一篇:http://blog.csdn.net/dba_huangzj/article/details/38817915

 

前言:

 

登录帐号允许你连到SQL Server,并且如果有数据库用户映射到这个帐号,那么这个帐号也可以访问对应的数据库。默认情况下,他们没有服务器层面的管理操作权。固定服务器角色允许你简化授权和回收权限的操作。

 

实现:

 

1. 打开登录属性框,然后选择【服务器角色】页:

image

会看到有下面的服务器角色:

image

 

它们的功能说明如下:

角色名 描述
bulkadminbulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。
dbcreator 固定服务器角色的成员可以创建、更改、删除和还原任何数据库。
 diskadmin 固定服务器角色的成员可以管理磁盘文件。
 processadmin 固定服务器角色的成员可以终止在数据库引擎实例中运行的进程。
public 默认情况下,所有 SQL Server 用户、组和角色都属于 public 固定服务器角色。
securityadmin 固定服务器角色的成员可以管理登录名及其属性。

他们可以 GRANT、DENY 和 REVOKE 服务器级别的权限。

他们还可以 GRANT、DENY 和 REVOKE 数据库级别的权限。

此外,他们还可以重置 SQL Server 登录名的密码。

 serveradmin 固定服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。
 setupadmin 固定服务器角色成员可以添加和删除链接服务器,并可以执行某些系统存储过程。
sysadmin 固定服务器角色的成员可以在数据库引擎中执行任何活动。

 

2. 可以用下面语句添加服务器角色成员:

ALTER SERVER ROLE <role_name> ADD MEMBER <login>;


 

3. 可以使用下面语句查看角色成员:

 

SELECT  role.name AS role , 
        role.is_fixed_role , 
        login.name AS login 
FROM    sys.server_role_members srm 
        JOIN sys.server_principals role ON srm.role_principal_id = role.principal_id 
        JOIN sys.server_principals login ON srm.member_principal_id = login.principal_id;


原理:

 

通过添加成员到服务器角色中,可以使用里面的预设管理权限。其中public角色,从2005引入,每个登录帐号自动添加到这个角色中,不能移除这个角色及其成员。与其他固定服务器角色不同,你可以修改public的权限,从而“初始化”所有帐号的默认权限,用下面语句可以查看public的角色权限:

 

SELECT permission_name, state_desc, SUSER_NAME(grantor_principal_id) 
grantor 
FROM sys.server_permissions 
WHERE grantee_principal_id = SUSER_ID(‘public‘);

下一篇:http://blog.csdn.net/dba_huangzj/article/details/38867489

Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色