今天再測試程式的時候,發現一個問題,因為同事的程式指定要用 sa 帳號,(通常我是另開帳號,每個專案用不同的帳號去操作,sa通常是冰起來,因為sa牽一髮則動全身,一方面容易被攻擊,改密碼又很麻煩,所以我是不用sa的),但沒想到SQL2008竟然把sa歸類為特殊主體,結果我要把sa的權限加到資料庫時,死都不給我加,找了相關的界面,都沒辦法改變,後來 google 了好幾篇文章後終於找到方法,方法如下:
◆資料庫的相容性層級需要是:90
可用下列的指令調整:
USE [master]
GO
EXEC dbo.sp_dbcmptlevel @dbname=N'資料庫名稱', @new_cmptlevel=90
GO
◆資料庫應該要具備有效的擁有者。
請使用以下的指令來進行調整:
USE master
GO
ALTER AUTHORIZATION ON DATABASE::資料庫名稱 TO sa
或
USE [資料庫名稱]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
就OK了
謝謝孤狗大神,跟寫文章的人.(我是記錄一下,避免以後又找不到)
訂閱:
張貼留言 (Atom)
發現我設成90會發生錯誤:
回覆刪除資料庫相容性層級的有效值為 100、110 或 120。
後來我依照這篇文章去把sa設成db_owner
http://www.noelpulis.com/fix-cannot-use-the-special-principal-sa-microsoft-sql-server-error-15405/
語法是
USE mydatabase
exec sp_changedbowner 'sa', 'true'