如何解決引用對象時,必須加所有者(owner)的問題

問題描述:
從別處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'
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章