这是逐字询问的问题: 将对数据库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,ect ...等权限名或数据库名称/ ID:
SELECT * FROM sys.database_permission;
如何找到所有数据库权限并将所有数据库权限授予用户?
答案 0 :(得分:2)
INSERT,UPDATE,DELETE等是对象级权限,而不是数据库权限。您可以将用户分配给数据库角色(即db_owner,db_datawrite等),以在更高级别上授予这些权限。如果希望他们能够执行数据库中的所有操作,请为其分配db_owner权限。