16.2 SQL Server创建角色
SQL Server创建角色
简介
角色是数据库级安全资源,是一组权限。要创建新角色,请使用create role
语句:
CREATE ROLE role_name
[AUTHORIZATION owner_name];
首先,在CREATE ROLE
关键字之后指定角色的名称。
其次,在AUTHORIZATION
子句中指定所有者ower_name
。所有者名称是拥有新角色的数据库用户
或角色
。如果省略AUTHORIZATION
子句,则新角色归执行CREATE ROLE
语句的用户拥有。
注意,角色的所有者和拥有角色的任何成员都可以向角色添加或删除角色的成员。
通常,创建一个新角色,使用GRANT
语句向其授予权限,并使用ALTER ROLE
语句向角色添加成员。
示例
1)创建新角色
首先在master
数据库中创建新LOGIN账号james
:
CREATE LOGIN james
WITH PASSWORD = 'Ux!sa123ayb';
接下来,为登录james
创建一个同名新用户:
CREATE USER james
FOR LOGIN james;
然后创建一个新角色sales
:
CREATE ROLE sales;
然后,将sales
架构上的SELECT
、INSERT
、DELETE
和UPDATE
权限授予sales
角色:
GRANT SELECT, INSERT, DELETE, UPDATE
ON SCHEMA::sales
TO sales;
最后,将james
用户添加到sales
角色中:
ALTER ROLE sales
ADD MEMBER james;
2)创建由固定数据库角色拥有的新角色
以下使用CREATE ROLE
语句创建固定数据库角色db_securityadmin
拥有的新角色:
CREATE ROLE sox_auditors
AUTHORIZATION db_securityadmin;
3)检查角色
角色以及角色中的成员可以使用sys.database_principals
和sys.database_role_members
视图查看.
显示角色sales
和sox_auditors
的信息:
SELECT
name,
principal_id,
type,
type_desc,
owning_principal_id
FROM sys.database_principals
WHERE name in ('sales', 'sox_auditors');