【发布时间】:2019-04-17 14:51:04
【问题描述】:
这是逐字逐句的问题: 将数据库 cis605 的所有已定义权限授予 cis605_usr
我读到“GRANT ALL”语法已被弃用,仅授予适用于对象 (https://docs.microsoft.com/en-us/sql/t-sql/statements/grant-object-permissions-transact-sql?view=sql-server-2017) 的 ANSI-92 权限。
如果我运行这个查询,我可以看到已经分配给用户的权限,但我需要查看数据库权限:
SELECT DISTINCT pr.principal_id, pr.name, pr.type_desc,
pr.authentication_type_desc, pe.state_desc,
pe.permission_name
FROM sys.database_principals pr
JOIN sys.database_permissions pe
ON pe.grantee_principal_id = pr.principal_id
WHERE pr.name = 'cis605_usr';
此查询返回权限,但我看不到权限名称,如 INSERT、UPDATE、DELETE 等...或数据库名称/ID:
SELECT * FROM sys.database_permission;
如何找到所有数据库权限并将所有数据库权限授予用户?
【问题讨论】:
-
permission_name列将显示授予的权限值。如果您没有看到“INSERT”之类的值,则表示该用户没有被授予权限(假设您有查看其他用户权限的权限。
标签: sql-server