簡體   English   中英

在Azure中檢索用戶創建的角色和用戶信息

[英]Retrieving user created roles and user info in Azure

我曾經按照以下步驟在Azure SQL數據庫中創建角色,授予角色權限並將角色分配給用戶:

CREATE ROLE [DepartmentReadOnly] AUTHORIZATION [dbo]
GO

GRANT SELECT ON tblDepartment TO DepartmentReadOnly

CREATE USER [user1] FROM LOGIN [user1];
EXEC sp_addrolemember DepartmentReadOnly, user1;

現在,我使用什么SQL從數據庫中檢索DepartmentReadOnly角色名稱和權限以及user1用戶信息(包括user1屬於哪個角色)?

在Azure中沒有顯示sys.server_principals系統視圖,因此我迷路了。 誰能幫忙嗎?

在Azure中用作sys.server_principals的“ select * from sys.sql_logins”,並且必須在主數據庫中運行查詢

聽起來您正在用戶數據庫中尋找以下目錄視圖:

這是起作用的:

SELECT p.[name] as 'Principal_Name',
CASE WHEN p.[type_desc]='SQL_USER' THEN 'User'
WHEN p.[type_desc]='DATABASE_ROLE' THEN 'Role' END As 'Principal_Type',
--principals2.[name] as 'Grantor',
dbpermissions.[state_desc] As 'Permission_Type',
dbpermissions.[permission_name] As 'Permission',
CASE WHEN so.[type_desc]='USER_TABLE' THEN 'Table'
WHEN so.[type_desc]='SQL_STORED_PROCEDURE' THEN 'Stored Proc'
WHEN so.[type_desc]='VIEW' THEN 'View' END as 'Object_Type',
so.[Name] as 'Object_Name'
FROM [sys].[database_permissions] dbpermissions
LEFT JOIN [sys].[objects] so ON dbpermissions.[major_id] = so.[object_id] 
LEFT JOIN [sys].[database_principals] p ON dbpermissions.  [grantee_principal_id] = p.[principal_id]
LEFT JOIN [sys].[database_principals] principals2  ON dbpermissions.[grantor_principal_id] = principals2.[principal_id]
WHERE p.principal_id > 4

http://elena-sqldba.blogspot.com/2015/06/retrieving-all-user-created-users-roles.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM