سؤال

أحاول إسقاط أحد الدور في قاعدة بيانات SQL Server الخاصة بي. أسقطت جميع الأعضاء من الدور وعندما حاولت إسقاط الدور الذي حصلت عليه رسالة الخطأ هذه:

Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.

هل يعرف أحد لماذا؟ راجعت المخطط المملوكة ولديها فقط علامة تحقق في اسمها الخاص.

هل كانت مفيدة؟

المحلول

لا يمكنك إسقاط مدير قاعدة البيانات يمتلك مخططا. يجب عليك نقل ملكية المخطط إلى مدير قاعدة البيانات الأخرى أو إسقاط المخطط قبل أن تتمكن من إسقاط مدير قاعدة البيانات.

نصائح أخرى

15138 خطأ يرجع إلى المستخدم الذي تحاول حذفه يمتلك مخطط.

إذا قمت بتشغيل الاستعلام أدناه، فستحصل على المخطط الذي يمتلكه المستخدم.

USE DatabaseName; 
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('UserName');

دعنا نقول أنه يعيد مخطط "db_denydatareader". ثم يمكنك تعيين هذا المخطط إلى المستخدم الافتراضي "DBO" باستخدام الاستعلام أدناه.

ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top