【问题标题】:Query to get roles and permissions granted to Azure SQL Database?查询以获取授予 Azure SQL 数据库的角色和权限?
【发布时间】: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


【解决方案1】:

你说得对,Azure SQL DB 上没有 fn_my_permissions。您可以调用 select HAS_PERMS_BY_NAME (db_name(), 'DATABASE', 'SELECT') 或您要检查的其他权限,以直接或通过角色检查是否授予了特定权限。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2019-05-16
    • 2015-09-16
    • 2015-04-24
    • 2019-04-13
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多