奇怪的是,服务器中不存在一个登录帐户,但它出现在数据库的用户列表中。如果我尝试删除它,则会显示错误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 :(得分:1)
major_id
中的sys.database_permissions
列根据class
/ class_desc
进行了不同的解释。在这种情况下,它不是object_id,而是assembly_id(在sys.assemblies
中找到)。