如何解决引用对象时,必须加所有者(owner)的问题
来源:互联网 发布:林氏家具怎么样 知乎 编辑:程序博客网 时间:2024/06/06 05:10
问题描述:
从别处copy来一个数据库DB,附加后,对象的所有者不是Admini,每次查询时必需写select * from Admini.***才能查到。有什么方法不用前面的Admini吗(在不修改所有者的前提下)?注:
已经在“安全性-登陆”下面也新建了一个Admini用户,默认数据库设置为DB,权限足够,但在查询分析器下用Admini登陆,查询时还是要写Admini前缀,否则就提示对象名无效
问题解决方法:
如果是用的是sql 2000的话,用某个用户登录, 不指定所有者的话, 访问对象的时候, 默认的所有者就是当前登录用户
如果是2005的话, 在数据的安全性--用户--右键你的用户admin--属性, 看看默认构架是什么, 这个默认架构决定当你访问对象时, 不指定所有者的话, 使用那个所有者(sql 2005中, owner变成构架了)
会导致与上面的说法不匹配的异常情况:
如果在数据库DB中,Admini是孤立用户的话,则情况会与上面描述的有出入(附加或者恢复数据库很容易出现孤立用户),即引用对象时必须指定所有者。孤立用户的表现是:只能创建Admini登录, 并通过服务器角色给其分配对DB的权限,或者是在DB中建立名称不是Admini的用户与登录关联。
要查询DB中的孤立用户情况,执行下面的语句:
USE DB
GO
EXEC sp_change_users_login 'Report'
解决孤立用户的方法:
解决这种异常只要解决掉孤立用户,在确定了Admini是孤立用户后,可以执行下面的语句来解决:
USE DB
GO
-- 修复孤立用户
EXEC sp_change_users_login 'Auto_Fix', 'Admin', NULL, '密码';
-- 这个密码是指, 如果没有事先建立admin 这个登录的话, sql自动创建登录时, 为该登录分配的密码
-- 授予在DB 中的相关权限
EXEC sp_addrolemember 'db_owner', 'Admin'
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=870217
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 如何解决引用对象时,必须加所有者(owner)的问题
- 快速解决引用对象时,必须加owner的问题
- 快速解决引用对象时,必须加owner的问题
- Delphi 对象创建的所有者问题
- retain 引用计数:两个所有者对同一个对象的管理
- 关于结构体二级指针引用时必须加括号的问题 (*L)->next,而不是*L->next
- 如何解决block 循环引用的问题
- 短信字符串分拆
- 商务参考体系结构:企业对消费者 (B2C电子商务实践) 第 7 章:ConsolidatedRetail.Com 的功能 (全文结束)
- Vista 下安装最新的 Apache + PHP + MySQL 指南
- 如何将 DBCC INDEXDEFRAG 执行的结果插入到表中
- Windows 2000 Server下安装Oracle8i的方法(我的机器为DELL的笔记本)
- 如何解决引用对象时,必须加所有者(owner)的问题
- Ultraedit的SQL Server语法着色模板
- SQL Server 基础概念集
- VB程序员眼中的C# 3
- 短信字符串分拆
- 在Text字段尾部追加数据
- 商务参考体系结构:企业对消费者 (B2C电子商务实践) 第 6 章:解决方案指南
- 根据当月数据库自动生成下个月数据库--1
- 商务参考体系结构:企业对消费者(B2C电子商务解决实践) 第 1 章:业务需求和设计模型