【发布时间】:2016-02-04 05:27:54
【问题描述】:
我执行了以下脚本来创建具有有限权限的 mydb_user 和 mydb_admin。
第 1 步:在 azure masterdb 上运行这些脚本
CREATE LOGIN mydb_admin
WITH PASSWORD = 'nnn'
GO
CREATE LOGIN mydb_user
WITH PASSWORD = 'nnnnnnnnn'
GO
第 2 步:在实际的 azure db 上运行以下脚本,例如 mydb
CREATE USER mydb_admin FROM LOGIN mydb_admin ;
EXEC sp_addrolemember 'db_datareader', 'mydb_admin';
EXEC sp_addrolemember 'db_datawriter', 'mydb_admin';
GRANT CONNECT TO mydb_admin;
GRANT SELECT TO mydb_admin;
GRANT EXECUTE ON [dbo].[procDumpRowsInto_De_Common] TO [mydb_admin] AS [dbo]
CREATE USER mydb_user FROM LOGIN mydb_user;
EXEC sp_addrolemember 'db_datareader', 'mydb_user';
EXEC sp_addrolemember 'db_executor', 'mydb_user';
GRANT CONNECT TO mydb_user;
GRANT SELECT TO mydb_user;
现在我想看看角色和权限是否设置正确。有没有我可以运行的查询来查看这个?例如,我想查看我的数据库 myDb 上的 dbuser mydb_user,mydb_admin 的有效角色和权限?
【问题讨论】:
-
和SQL Server一样,可以调用sys.fn_my_permissions。见stackoverflow.com/a/12789102
-
无效的对象名称“fn_my_permissions”。我已经尝试过了,但我无法在我的天蓝色“主”数据库中找到任何这样的对象“fn_my_permissions”
-
你说得对,Azure SQL DB 上没有 fn_my_permissions。您可以调用 select HAS_PERMS_BY_NAME (db_name(), 'DATABASE', 'SELECT') 来检查是否授予了特定权限。
标签: database azure azure-sql-database