且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。

更新时间:2022-05-07 14:39:49

 今天遇到一个案例:右键单击数据库的属性时出现下面错误提示:

        属性Owner不可用于数据库xxx,该对象可能没有此属性,也可能是访问权限不足而无法检索。

SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。

   使用脚本查看该数据库的Owner时发现Owner为null。具体原因是因为该数据库的Owner是一个系统管理员的账号,由于该同事离职,接手的系统管理员将该账号清除了,所以出现上面错误.此时用下面脚本查询,就会发现该Owner为null值。

SELECT  d.name ,
        owner_sid ,
        l.name
FROM    sys.databases d
        LEFT JOIN sys.syslogins l ON l.sid = d.owner_sid
WHERE d.name='DataBaseName';

只需要将数据库的Owner改为sa或其他sysadmin角色的账号即可.

USE DataBaseName;
GO         
EXEC sp_changedbowner 'sa';
GO