Sql-Server
SQL Server 2000 中只有系統管理員才能完成的任務是什麼?
我正在清理我的 SQL Server 2000 上的權限,並且我想驗證某個特定帳戶是否仍然具有系統管理員權限。
哪些非破壞性任務只有系統管理員才能完成,我可以用來確認這一點?
您根本不必執行任何任務(破壞性或非破壞性)。
您可以使用內置函式
IS_SRVROLEMEMBER
來查找某個LOGIN
是否是sysadmin
伺服器角色的成員:SELECT IS_SRVROLEMEMBER('sysadmin','<LoginName>');
請注意,對於除結果之外的角色,對於隱式
sysadmin
成員資格也是正數 (=1) 。您可以使用內置儲存過程
sp_helpsrvrolemember
來獲取某個角色 的所有顯式成員的列表:EXEC sys.sp_helpsrvrolemember @srvrolename = 'sysadmin';
或所有伺服器角色的所有顯式成員的 完整列表:
EXEC sys.sp_helpsrvrolemember;
對於 SQL Server 2000,還可以使用以下選項對結果集進行排序或過濾:
CREATE TABLE #ServerRoles ( ServerRole VARCHAR(20), MemberName sysname, sid VARBINARY(85) ); INSERT INTO #ServerRoles (ServerRole, MemberName, sid) EXEC sys.sp_helpsrvrolemember; SELECT SR.MemberName, SR.ServerRole FROM #ServerRoles SR WHERE 1 = 1 -- Change this to any filter you want ORDER BY SR.MemberName, SR.ServerRole; -- Change this to any sorting you want DROP TABLE #ServerRoles; GO
對於 SQL Server 2005+,已經有一個可以直接查詢的系統視圖:
sys.server_role_members
roles
,它是和之間的多對多關係表logins
。
您可以使用該帳戶創建另一個登錄名,並授予它系統管理員權限。