2012-03-14 50 views
0

如果默認'sa'帳戶有sys_admin permissions爲整個SQL實例及其所有數據庫。在數據庫本身上,如果我沒有啓用db_datareader權限,我會認爲它不需要它,因爲它隱含着,但我在.net中想知道,有沒有辦法檢查是否明確啓用了db_datareader,而不僅僅是從「sa'周圍是一個sys_admin.SQL顯式和隱式權限

回答

1

發揮與syspermissions目錄暗示:

SELECT u.name, o.name 
FROM syspermissions p, sysobjects o, sysusers u 
WHERE p.id = o.id 
AND u.uid = p.grantee 
AND o.xtype = 'U' --user 

此外,您還可以使用這些腳本獲得YOUE在服務器/數據庫用戶名/用戶登陸的權限

SELECT * FROM fn_my_permissions(NULL, 'SERVER'); 

SELECT * FROM fn_my_permissions (NULL, 'DATABASE');