登入名 使用者 角色 許可權

2021-07-26 16:46:22 字數 3308 閱讀 2003

--查詢使用者擁有的伺服器角色

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...