我創建一個登錄名爲mylogin與密碼=「pass_1」用戶登錄SQL Server 2005中表達
然後我使用此登錄&登錄到SQL Server試圖創建一個數據庫,這給了錯誤權限被拒絕。
然後我執行此:sp_addsrvrolemember「mylogin」,「dbcreator」
於是,我再次用以上登錄&登錄到SQL Server試圖創建一個數據庫,這一次的成功創建了數據庫
這是因爲我爲登錄添加了dbcreator服務器角色。
但是,後來我創造了LOGIN mylogin一個USER myloginuser, 然後執行此查詢: 然後再次我試圖創建一個數據庫,執行爲用戶=「myloginuser」
,但是失敗了。爲什麼這樣?
當用戶MYLOGINUSER所關聯的登錄MYLOGIN有權創建數據庫時,爲什麼用戶沒有權限?那麼最新的解決方案呢?我是否必須單獨授予用戶權限,而不管授予登錄的權限?
此外,爲登錄創建的用戶必須在數據庫內部創建嗎?有必要嗎?
非常感謝先生,但那我該如何給myloginuser創建表權限呢?當我使用sp_addsrvrolemember給它時,它說--login不存在。所以我必須使用GRANT? – sqlchild 2011-02-24 11:58:02
@sqlchild,運行下面的腳本使用YOUR_DB exec sp_addrolemember'db_owner',myloginuser – Nanda 2011-02-24 12:15:20
先生,我想知道,在sp_addsrvrolemember,用戶名不能給?我們必須給它一個登錄名?因爲當我分別創建一個用戶,然後試圖授予dbcreator服務器角色給他,然後它給了錯誤。意味着如果我們希望用戶使用與登錄名稱相同的名稱創建,那麼我們可以使用sp_addsrvrolemember,因爲它創建了用戶本身,但是當我們單獨創建一個用戶然後想要授予他時,我們就不能用它。 – sqlchild 2011-02-24 14:00:51