[SQL]SQL Server 2012 – Security and Compliance (SQL 150)
開始練習Lab時,請先參考「使用SQL Server Virtual Labs注意的地方」。
主題:SQL Server 2012 – Security and Compliance (SQL 150)
Exercise 1: Exploring User Defined Server Roles
SQL 2012提供使用者定義的伺服器角色,如果現有的伺服器角色不符合需求的話,可以新增伺服器角色。
可透過以下的SQL查看 登入帳號及擁有的權限 (PS.Manual上的SQL有錯誤哦)。
SELECT
sp.name,
sp.type_desc,
p.permission_name,
p.state_desc
FROM sys.server_permissions p
JOIN sys.server_principals sp
ON p.grantee_principal_id = sp.principal_id
WHERE sp.type IN ('S','U','G');
--可透過ADD MEMBER來加入 SERVER ROLE
ALTER SERVER ROLE [DatabaseTuner] ADD MEMBER [User1];
這樣User1就有DatabaseTuner的角色,就可以執行 DBCC FREEPROCCACHE 。
Exercise 2: Creating a Contained Database (建立自主資料庫)
SQL 2012之前的SQL SERVER是非自主資料庫,因為資料庫需要依賴額外的資訊,如
· Server logins.
· Collation settings.
· SQL Server Agent jobs.
· Linked server configuration information.
SQL 2012可建立自主資料庫,將權限有效的隔離
Task 1: Creating a contained database
設定Server啟用自主資料庫屬性為True,並重新啟動服務。
建立一個自主資料庫,名稱為 ContainedDB,並在Options page中設定Containment type為Partial。
然後可在ContainedDB中建立一個使用者ContainedUser後,就可用該使用者直接登入到ContainedDB。
Exercise 3: Moving a Contained Database
Task 1: Moving a Contained Database
我們可將自主資料庫備份,到其他DB Server Restore。
如果其他DB Server要Restore 自主資料庫的話,Server的驗証模式要設定成SQL Server and Windows Authentication mode。
當然,也要設定Server啟用自主資料庫屬性為True。
先在SQLONE中備份ContainedDB
BACKUP DATABASE ContainedDB
TO DISK=’c:\LabFiles\ContainedDB.bak’
然後在SQLTWO 中RESTORE ContainedDB後,並用ContainedUser登入ContainedDB。
Exercise 4: Migrating an Existing Database to a Contained Database
以下練習要將非自主資料庫升級到自主資料庫。
Task 1: Converting a database to a contained database
可透過「sys.dm_db_uncontained_entities 」來查看有那些非自主的物件。
將資料庫屬性設定Containment type為Partial。
ALTER DATABASE AdventureWorks2012 SET CONTAINMENT=PARTIAL;
再透過「sp_migrate_user_to_contained 」將對應至 SQL Server 登入的資料庫使用者移轉為具有密碼之自主資料庫使用者。
EXEC sp_migrate_user_to_contained
@username = N'NewUnContainedUser',
@rename = N'keep_name',
@disable_login = N'disable_login'
這樣我們就可以使用「NewUnContainedUser 」登入自主資料庫 AdventureWorks2012 。
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^