2017-01-23 23 views
1

奇怪的是,一個登錄帳戶在服務器中不存在,但它出現在數據庫的用戶列表中。如果我嘗試刪除它,則顯示錯誤15284。如何解決SQL Server錯誤:15284?數據庫主體已授予

我做了一些研究,我做執行以下查詢:

select * from sys.database_permissions      
where grantor_principal_id = user_id ('ca');  

結果如下:

class class_desc major_id minor_id grantee_principal_id grantor_principal_id type permission_name state state_desc 
5  ASSEMBLY 65538  0   0      5      AL  ALTER   G  GRANT 
5  ASSEMBLY 65538  0   0      5      CL  CONTROL   G  GRANT 
... 

正如你可以看到(我希望這是明確的)相關的對象到那就是:65538 但是,如果我試圖獲取對象的名稱:

SELECT OBJECT_NAME(65538) 

它返回:NULL

有誰知道什麼是爲了最好的選擇擺脫那些記錄(的sys.database_permissions)?

我會很感激任何建議。

+0

你檢查了sys.assembly_modules,看看這可能是一個CLR程序集嗎? ('select * from sys.assembly_modules') –

+0

這是DBA相關的問題。更好的你應該問在DBA交流論壇[http://dba.stackexchange.com/] –

回答

1

sys.database_permissions中的major_id列根據class/class_desc的不同來解釋。在這種情況下,它不是object_id,而是一個assembly_id(如sys.assemblies中所示)。

+0

這段代碼完成了這項工作:ALTER AUTHORIZATION ASSEMBLY :: AssemblyName TO NewLoginName – Ayorus

相關問題