


如何解決sql server引用對(duì)象時(shí),必須加所有者
添加時(shí)間:2013-4-11 17:18:44
添加:
思海網(wǎng)絡(luò)
問(wèn)題描述:
從別處copy來(lái)一個(gè)數(shù)據(jù)庫(kù)DB,附加后,對(duì)象的所有者不是Admini,每次查詢時(shí)必需寫(xiě)select * from Admini.***才能查到。有什么方法不用前面的Admini嗎(在不修改所有者的前提下)?注:
已經(jīng)在“安全性-登陸”下面也新建了一個(gè)Admini用戶,默認(rèn)數(shù)據(jù)庫(kù)設(shè)置為DB,權(quán)限足夠,但在查詢分析器下用Admini登陸,查詢時(shí)還是要寫(xiě)Admini前綴,否則就提示對(duì)象名無(wú)效
問(wèn)題解決方法:
如果是用的是sql 2000的話,用某個(gè)用戶登錄, 不指定所有者的話, 訪問(wèn)對(duì)象的時(shí)候, 默認(rèn)的所有者就是當(dāng)前登錄用戶
如果是2005的話, 在數(shù)據(jù)的安全性--用戶--右鍵你的用戶admin--屬性, 看看默認(rèn)構(gòu)架是什么, 這個(gè)默認(rèn)架構(gòu)決定當(dāng)你訪問(wèn)對(duì)象時(shí), 不指定所有者的話, 使用那個(gè)所有者(sql 2005中, owner變成構(gòu)架了)
會(huì)導(dǎo)致與上面的說(shuō)法不匹配的異常情況:
如果在數(shù)據(jù)庫(kù)DB中,Admini是孤立用戶的話,則情況會(huì)與上面描述的有出入(附加或者恢復(fù)數(shù)據(jù)庫(kù)很容易出現(xiàn)孤立用戶),即引用對(duì)象時(shí)必須指定所有者。孤立用戶的表現(xiàn)是:只能創(chuàng)建Admini登錄, 并通過(guò)服務(wù)器角色給其分配對(duì)DB的權(quán)限,或者是在DB中建立名稱不是Admini的用戶與登錄關(guān)聯(lián)。
要查詢DB中的孤立用戶情況,執(zhí)行下面的語(yǔ)句:
USE DB
GO
EXEC sp_change_users_login 'Report'
解決孤立用戶的方法:
解決這種異常只要解決掉孤立用戶,在確定了Admini是孤立用戶后,可以執(zhí)行下面的語(yǔ)句來(lái)解決:
USE DB
GO
-- 修復(fù)孤立用戶
EXEC sp_change_users_login 'Auto_Fix', 'Admin', NULL, '密碼';
-- 這個(gè)密碼是指, 如果沒(méi)有事先建立admin 這個(gè)登錄的話, sql自動(dòng)創(chuàng)建登錄時(shí), 為該登錄分配的密碼
-- 授予在DB 中的相關(guān)權(quán)限
EXEC sp_addrolemember 'db_owner', 'Admin'
關(guān)鍵字:sql server、數(shù)據(jù)庫(kù)、對(duì)象
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解