Sql Server中不存在原理dbo
Posted
技术标签:
【中文标题】Sql Server中不存在原理dbo【英文标题】:Principle dbo does not exist in Sql Server 【发布时间】:2016-05-23 07:30:49 【问题描述】:通过 SQL Server 中的存储过程获取数据时,出现类似错误
无法作为数据库主体执行,因为主体“dbo” 不存在,无法模拟此类主体,或者您 没有权限。
我只在访问特定存储过程时收到此错误,而不是所有 SP。
【问题讨论】:
***.com/questions/13823354/… 的可能重复项 【参考方案1】:给您的数据库一个有效的所有者。试试这个:
ALTER AUTHORIZATION
ON DATABASE::[YourDatabaseName]
TO [LoginUser];
或者你可以尝试设置它
USE [dbname]
GO
sp_changedbowner 'someLogin'
【讨论】:
如何提供登录凭证 @Nimmi:-[LoginCredential]
是用户!我会更新它。很抱歉造成混乱。【参考方案2】:
ALTER AUTHORIZATION ON DATABASE::Example TO sa;
【讨论】:
【参考方案3】:基本上,SQL Server 登录被映射到数据库用户,并且没有为 SQL Server 主体正确定义此映射,那么该特定实例上的数据库的特定用户将无法成功登录,并且该用户称为孤儿用户。 首先,检查孤立用户是否被映射。
USE <database>
EXEC sp_change_users_login @Action='Report';
如果没有映射,则修复孤立用户。
USE <database>
EXEC sp_change_users_login @Action='update_one', @UserNamePattern='YOURUSERNAME', @LoginName='YOURUSERNAME';
【讨论】:
以上是关于Sql Server中不存在原理dbo的主要内容,如果未能解决你的问题,请参考以下文章
如何在SQL Server2005数据库中检查一个表是不是存在,如存在就删除表记录,如不存在就建表.
SQL Server 查询。用户存在于另一个表中但不存在用户的位置
SQL server - 在创建之前检查 SP 中的对象是不是存在
注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL 在 chefspec 中不存在错误