SQL Server 資料庫身份認證以及包含資料庫

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   os   ar   使用   for   

首先分為SQL Server 認證與Windows 身份認證。

 

SQL Server 認證可以運行以下語句來查詢

1 select * from sys.sql_logins


管理員可以直接修改密碼,但無法知曉原有密碼原文,SQL Server使用混淆演算法來保護安全性不如Windows 身份認證,

 

Windows認證模式

首先分為本機帳號與域帳號

 

SQL Server 將認證和授權分散給了不同的對象來完成,SQL Server 的“登入名”(Login)用於認證,串連SQL Server 的SQL或者Windows 賬戶必須在SQL Server中有對應的登入名才能成功登入。

而每個資料庫中的“使用者”(User)被授予了操作資料庫中對象的相應許可權。登入名和使用者之間通過SID聯絡起來,於是登入SQL Server 的登入名也獲得了操作資料庫的相應許可權。

這個機制帶來以下兩個問題:

1.提高了高可用解決方案的維護成本。msdb(系統資料庫)無法被鏡像。類似製作資料庫鏡像系統,就需同時在主體和鏡像伺服器上的添加同樣的使用者名稱密碼,否則發生容錯移轉,鏡像服務就無法使用新的登入名進行登入。另外,在鏡像伺服器上添加登入名時要確保和主體伺服器上的登入名使用相同的SID,否則就會破壞登入名到資料庫使用者之間的對應關係。成為所謂的孤立賬戶。

2.增加了遷移資料庫的複雜性。不能僅僅簡單地遷移使用者資料資料庫和程式。因為還有一部分和應用相關的對象遺漏在使用者資料庫之外,其中包括登入名。在遷移應用的時候,登入名需被單獨的從老的環境中提取出來,在部署到新的環境上。

 

孤立賬戶解決參考以下連結

http://www.cnblogs.com/kerrycode/p/3465547.html

 

 

前提是資料庫相容層級110以上,即2012以上。包含資料庫建立。。

1 EXEC sys.sp_configure N‘contained database authentication‘, N‘1‘2 GO3 RECONFIGURE WITH OVERRIDE4 GO

修改[AdventureWorks2012]為包含資料庫

1 USE [master]2 GO3 ALTER DATABASE [AdventureWorks2012] SET CONTAINMENT = PARTIAL WITH NO_WAIT4 GO

查詢執行個體中所有的包含資料庫

1 use master2 select * from sys.databases3 where containment >0

  將現有的資料庫使用者改為包含資料庫使用者

 1 USE [AdventureWorks2012] 2 GO 3 DECLARE @username SYSNAME; 4 DECLARE user_cursor CURSOR 5 FOR 6     SELECT  dp.name 7     FROM    sys.database_principals AS dp 8             JOIN sys.server_principals AS sp ON dp.sid = sp.sid 9     WHERE   dp.authentication_type = 110             AND sp.is_disabled = 0;11 OPEN user_cursor12 FETCH NEXT FROM user_cursor INTO @username13 WHILE @@FETCH_STATUS = 014     BEGIN15         EXECUTE sp_migrate_user_to_contained @username = @username,16             @rename = N‘keep_name‘, @disablelogin = N‘disable_login‘;17         FETCH NEXT FROM user_cursor INTO @username18     END19 CLOSE user_cursor;20 DEALLOCATE user_cursor;

 

SQL Server 資料庫身份認證以及包含資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.