如何解決引用對象時必須加所有者計劃
問題描述:
從別處copy來一個數據庫DB,附加后,對象的所有者不是Admini,每次查詢時必需寫select * from Admini.***才能查到。有什么方法不用前面的Admini嗎(在不修改所有者的前提下)?注:
已經在“安全性-登陸”下面也新建了一個Admini用戶,默認數據庫設置為DB,權限足夠,但在查詢分析器下用Admini登陸,查詢時還是要寫Admini前綴,否則就提示對象名無效
問題解決方法:
如果是用的是sql 2000的話,用某個用戶登錄, 不指定所有者的話, 訪問對象的時候, 默認的所有者就是當前登錄用戶
如果是2005的話, 在數據的安全性--用戶--右鍵你的用戶admin--屬性, 看看默認構架是什么, 這個默認架構決定當你訪問對象時, 不指定所有者的話, 使用那個所有者(sql 2005中, owner變成構架了)
目前昌黎宏興普碳方坯報價2350 會導致與上面的說法不匹配的異常情況:
如果在數據庫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\'
鄭州哪家婦科醫院華潤江中
長沙治療白癜風好方法