كيف يمكنني إنشاء جدول من الأذونات الممنوحة لجداول قاعدة البيانات لمستخدم قاعدة البيانات؟
-
03-07-2019 - |
سؤال
ولدي قاعدة بيانات SQL Server 2000 مع حوالي بضع مئات من الجداول. هناك العديد من حسابات المستخدمين SQL التي يمكن الوصول إلى قاعدة البيانات هذه ولكن كل واحد له أذونات مختلفة الممنوحة على الجداول في DB.
وكيف أقوم بإنشاء النصي أن تعطيني تقرير الأذونات الممنوحة لمستخدم معين. أي لتوليد شيء من هذا القبيل:
Table SELECT DELETE UPDATE INSERT ALTER
----- ------ ------ ------ ------ -----
Invoices Yes No Yes Yes No
Orders Yes Yes Yes Yes No
Customers Yes No Yes Yes No
ووهلم جرا. إنه يوم الجمعة، يا SQL-فو منخفضة اليوم ولدي مليون أشياء أخرى يجب القيام به قبل الحصول على الانتهاء هنا اليوم وإذا كان شخص ما نصي مفيد للقيام بذلك بالفعل ثم وسأكون ممتنا إلى الأبد:)
المحلول
Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES
where GRANTEE = @username
وهذا وستعمل في خادم SQL 2000/2005/2008
نصائح أخرى
وأنا لست متأكدا إذا كان يعمل هذا الإجراء SQL 2000 أم لا، فإنه لا تحصل على الشكل الصحيح، ولكن قد تحصل على جزء من الطريق هناك، يمكنك يمكنكم محور بها للحصول على الشكل الخاص بك.
sys.sp_helprotect @Username = 'myUser'
لا تنتمي إلى StackOverflow