--查詢使用者擁有的伺服器角色
select p1.[name] as login_name
,p1.[sid]
,p2.[name] server_role_name
,p2.type_desc
,p1.is_disabled
,p1.create_date
,p1.modify_date
,p1.default_database_name
,p1.default_language_name
from sys.server_principals as p1
left join sys.server_role_members as m on m.member_principal_id = p1.principal_id
left join sys.server_principals as p2 on p2.principal_id = m.role_principal_id
where p1.[name] = 'rpt'
and p2.[name] is not null
order by p1.[name] asc;
--查詢使用者擁有的資料庫角色
use testdb
goselect p1.[name]
,p1.[sid]
,p1.default_schema_name
,p2.[name] db_role_name
,p2.type_desc
from sys.database_principals as p1
left join sys.database_role_members as m on m.member_principal_id = p1.principal_id
left join sys.database_principals as p2 on p2.principal_id = m.role_principal_id
where p1.[name] = 'rpt'
and p2.[name] is not null
order by p1.[name] asc;
--查詢資料庫角色擁有的許可權
select b.[name]
,b.sid
,b.type_desc as principal_type_desc
,b.default_schema_name
,object_name(a.major_id) as [object_name]
,a.class_desc
,a.[type] permission_type
,a.[permission_name]
,a.[state]
,a.state_desc
from sys.database_permissions as a
inner join sys.database_principals as b on b.principal_id = a.grantee_principal_id
where b.type_desc = 'database_role'
and b.[name] = 'udf_db_role_report'
order by a.state asc
,b.[name] asc
,a.class asc
,a.[permission_name] asc;
--查詢使用者擁有的架構
select p.[name]
,p.[sid]
,p.type_desc
,p.default_schema_name
,s.[name] as own_schema_name
from sys.database_principals as p
inner join sys.schemas as s on s.principal_id = p.principal_id
where p.[name] = 'rpt';
--查詢使用者的擁有的顯式許可權
--登入名在服務級別的許可權
select b.name
,b.sid
,b.is_disabled
,b.type_desc as principal_type_desc
,b.default_database_name
,a.class_desc
,a.[type] as permission_type
,a.permission_name
,a.[state]
,a.state_desc
,b.create_date
,b.modify_date
from sys.server_permissions as a
inner join sys.server_principals as b on b.principal_id = a.grantee_principal_id
where b.type_desc = 'sql_login'
and b.[name] = 'rpt'
order by b.[name] asc
,a.[state] asc
,a.class asc
,a.permission_name asc;
--登入名在資料庫級別的許可權
--注意:使用者至少要有資料庫級別的connect許可權才能連線到指定的資料庫
select b.[name]
,b.sid
,b.type_desc as principal_type_desc
,b.default_schema_name
,object_name(a.major_id) as [object_name]
,a.class_desc
,a.[type] permission_type
,a.[permission_name]
,a.[state]
,a.state_desc
from sys.database_permissions as a
inner join sys.database_principals as b on b.principal_id = a.grantee_principal_id
where b.type_desc = 'sql_user'
and b.[name] = 'rpt'
order by a.state asc
,b.[name] asc
,a.class asc
,a.[permission_name] asc;
SQL 登入名 使用者 角色
參考部落格 非常感謝博主的知識分享。1.建立乙個登入名,完全運算元據庫許可權,步驟為 建立登入名 建立使用者 分配角色 1.建立登入名 此時可以登陸,但是沒資料庫的許可權,不能看表 create login dba with password 1234 2.建立使用者 給資料庫mydb建立使用者,此...
SQL Server 關聯使用者與登入名
當在另一台伺服器恢復資料庫時,資料庫使用者名稱無法與登入名建立關聯,用管理工具無法將登入名與使用者關聯,只能用sql來實現,具體如下。登入名屬性 關聯使用者也可以 use 資料庫名 exec sp change users login update one 使用者名稱 登入名 說明 使用者名稱和登入...
建立登入名使用者名稱賦予伺服器角色資料庫角色語句
1.刪除測試使用者 exec sp revokedbaccess n u dbcreator 移除使用者對對其他使用者建的資料庫的訪問許可權,但是不能移除sa的訪問權 exec sp droplogin n u dbcreator 刪除登入使用者 2 建立登入名socct,a1 123 exec s...