在SQL 2008服务器中创建自定义SQL Server角色

问题描述:

我想添加新的自定义SQL Server角色并将新用户分别分配给这些适当的角色。我试图找到如何创建角色,但我无法找到添加的地方。你能指导我如何达到我的要求吗?在SQL 2008服务器中创建自定义SQL Server角色

+0

您的意思是在数据库中还是在服务器级别? SPE109有一个很好的观点,我和marc_s可能会误解 – gbn 2011-06-02 10:23:53

您在2008版本中无法完成此操作 - 这是2011/2012版SQL Server 2011(a.k.a.“Denali”)中的一项新功能。

看到一些资源:

您可以创建数据库级别的角色看Create Role和更详细的页面上的链接。

+3

这不是服务器角色,因为OP问 – gbn 2011-06-02 10:06:06

+0

他们是不是?我不清楚他是问及创建服务器级别还是数据库级别角色,他们只是询问在SQL Server中创建角色。 – SPE109 2011-06-02 10:18:24

您只需在SQL Server 2011之前授予您想要的登录权限而不是角色。当然,这并不理想,但它可行。

我们使用它来使应用程序团队能够看到正在发生的事情而不会影响DBA。

例如,

CREATE LOGIN [MyDOmain\FolkITrustGroup] FROM WINDOWS; 
GO 
GRANT VIEW SERVER STATE TO [MyDOmain\FolkITrustGroup] 
GRANT VIEW ANY DEFINITION TO [MyDOmain\FolkITrustGroup] 
GO 

编辑:这实现你的要求,而无需使用服务器角色,其目前还不存在......

嗯,我没有安装SQL服务器所以我现在无法检查。但我的SQL的知识告诉我:

创建角色:

create role <rolename>; 

授予的privilages:

grant <privilages> on <relation> to <rolename>; 

撤销的privilages:

revoke <priv> on <rel> from <rolename>; 

授予角色的用户:

grant <rolename> to user; 

您还可以创建它的层次结构: 例如>

create role supervisor; 
grant select, insert on db.table to supervisor; 
create role manager; 
grant supervisor to manager; 

grant manager to John; 

这是标准SQL的方式。它在当前版本的某些DBMS中尚不可用。不确定SQL服务器。

+0

最后一种说法是错误的。它应该是:'EXEC sp_addrolemember'manager','John'' – mpiliszcz 2015-05-21 11:01:34

****A. Creating a server role that is owned by a login**** 


****The following example creates the server role buyers that is owned by login BenMiller.**** 

USE master; 
CREATE SERVER ROLE buyers AUTHORIZATION BenMiller; 
GO 


****B. Creating a server role that is owned by a fixed server role**** 


****The following example creates the server role auditors that is owned the securityadmin fixed server role.**** 

USE master; 
CREATE SERVER ROLE auditors AUTHORIZATION securityadmin; 
GO