如何解决引用对象时,必须加所有者(owner)的问题

原创 2006年07月03日 16:21:00

问题描述:

从别处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'

 

 

快速解决引用对象时,必须加owner的问题

  • zgqtxwd
  • zgqtxwd
  • 2008年04月30日 05:53
  • 107

快速解决引用对象时,必须加owner的问题

问:从别处复制一个数据库DB,附加后,对象的所有者不是Admini,每次查询时必需写select * from Admini.***才能查到。用什么方法不用问:从别处复制一个数据库DB,附加后,对象的...
  • tianlianchao1982
  • tianlianchao1982
  • 2010年11月04日 09:06
  • 358

如何解决引用对象时,必须加所有者(owner)的问题

问题描述:从别处copy来一个数据库DB,附加后,对象的所有者不是Admini,每次查询时必需写select * from Admini.***才能查到。有什么方法不用前面的Admini吗(在不修改所...
  • huangkelong
  • huangkelong
  • 2008年01月03日 14:49
  • 112

如何解决引用对象时,必须加所有者(owner)的问题

问题描述:从别处copy来一个数据库DB,附加后,对象的所有者不是Admini,每次查询时必需写select * from Admini.***才能查到。有什么方法不用前面的Admini吗(在不修改所...
  • changjiangzhibin
  • changjiangzhibin
  • 2008年04月21日 01:14
  • 306

修改文件的所有者和权限

打开Linux系统,建立一个目录。建立目录命令为【mkdir】。并用【ls】命令查看目录相关信息,如图,我们知道test的权限为rwxr-xr-x。 chgrp:改变文件所属用户组...
  • selifecn
  • selifecn
  • 2017年05月31日 17:11
  • 364

Postgres修改数据库的owner

1、使用postgres超级用户登录: ./psql -U postgres 2、创建imsdb这个数据库: create database imsdb [owner rcb] ...
  • shiyibodec
  • shiyibodec
  • 2016年10月28日 15:00
  • 2071

linux下修改文件的用户组chgrp和文件所有者chown

1. linux下修改文件用户组 chgrp: change group的简写,修改文件所属的用户组。 linux下修改文件所有者 chown :change owner的简写, 修改文件的所有者。...
  • u014285882
  • u014285882
  • 2014年06月08日 16:12
  • 5439

java多线程学习笔记——synchronized关键字

一、synchronized关键字概述 JAVA中每一个对象都有一个内部锁,如果一个方法用synchronized关键字声明,那么对象的锁将保护整个方法。也就说,要调用该方法,线程必须获得内部的对象...
  • xxxknight
  • xxxknight
  • 2015年07月25日 00:49
  • 396

改变文件所有者及所属群组的chown,chgrp

chown,chgrp的简单使用
  • weilaiqing
  • weilaiqing
  • 2011年05月09日 17:29
  • 5599

在ORACLE数据库中如何修改表的所有者

在ORACLE数据库中如何修改表的所有者 例如:用户A有很多表,用户B也有很多表,我想把A下的表都移到B下,这样,原来A中表的所有者变成了用户B,从而可把用户A删除,求教各位高手,怎么做???...
  • happy2005
  • happy2005
  • 2004年07月28日 09:44
  • 4283
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何解决引用对象时,必须加所有者(owner)的问题
举报原因:
原因补充:

(最多只允许输入30个字)