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

2021-10-01 00:20:21 字數 2180 閱讀 6045

首先分為

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

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

1 exec sys.sp_configure n'contained database authentication', n'1'

2 go

3 reconfigure with override

4 go

修改[adventureworks2012]為包含資料庫

1 use [master]

2 go

3 alter database [adventureworks2012] set containment = partial with no_wait

4 go

查詢例項中所有的包含資料庫

1 use master

2 select * from sys.databases

3 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 = 1

10             and sp.is_disabled = 0;

11 open user_cursor

12 fetch next from user_cursor into @username

13 while @@fetch_status = 0

14     begin

15         execute sp_migrate_user_to_contained @username = @username,

16             @rename = n'keep_name', @disablelogin = n'disable_login';

17         fetch next from user_cursor into @username

18     end

19 close user_cursor;

20 deallocate user_cursor;

sqlserver 資料庫角色成員身份

db accessadmin 固定資料庫角色的成員可以為 windows 登入名 windows 組和 sql server 登入名新增或刪除資料庫訪問許可權。db backupoperator 固定資料庫角色的成員可以備份該資料庫。db datareader 固定資料庫角色的成員可以從所有使用者表...

資料庫角色成員身份

最佳答案 sql server 聯機叢書有詳細解釋 db accessadmin 固定資料庫角色的成員可以為 windows 登入帳戶 windows 組和 sql server 登入帳戶新增或刪除訪問許可權。db backupoperator 固定資料庫角色的成員可以備份該資料庫。db datar...

資料庫角色成員身份

db accessadmin 在資料庫中新增或刪除windows nt4.0或windows2000使用者和組以及sql server使用者 db backupoperator 有備份資料庫的許可權 db datareader 檢視來自資料庫中所有使用者表的全部資料 db datawriter 新增...