技术讲座--资料库技术升级系列三.ppt_第1页
技术讲座--资料库技术升级系列三.ppt_第2页
技术讲座--资料库技术升级系列三.ppt_第3页
技术讲座--资料库技术升级系列三.ppt_第4页
技术讲座--资料库技术升级系列三.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、資料的安全存取,上次回家作業解答,Q1: 在資料庫鏡像中,鏡像伺服器可否用來擔任報表的資料來源? 需搭配資料庫快照 Q2: 如何增加備份媒體的可靠度? 利用鏡像備份,同時儲存多個備份,大綱,帳號密碼安全性原則 使用者與結構定義分開 不同權限檢視不同的中繼資料 Execution Context SQL Injection Replication安全性設定 Agent、Database Mail安全性設定,大綱續,Application Role安全設定 利用 Stored Procrdure、View增進安全 Audit審核的機制 利用 DDL Trigger審核 SQL事件 SQL Serv

2、er自訂帳號對應到 Windows帳號 支援憑證的對稱,非對稱加密 預設關閉各選項功能 限制 .NET程式碼執行,帳號密碼安全性原則,Principals,伺服器角色,SQL Server 登入帳戶,Windows 群組,網域使用者帳戶,本機使用者帳戶,User,資料庫角色,Application Role,Group,SQL Server,Database,Windows,Files,Registry Keys,CREATE ALTER DROP CONTROL CONNECT SELECT EXECUTE UPDATE DELETE INSERT TAKE OWNERSHIP VIEW D

3、EFINITION BACKUP,權限(Permissions),可賦予存取權限的物件(Securables),GRANT/REVOKE/DENY,ACL,伺服器,Schema,資料庫,驗證(authentication) 檢查是否為正確的使用者 有 Windows驗證與 SQL驗證 授權(authorization) 給與使用者權力 利用 Fixed Role來設定 owner所建立的物件,該 owner有完全的權力,安全性的基本,2驗證(authentication),Windows驗證 需要有 Windows帳號或 AD帳號 SQL Server要允許登入(Grant) 適用在區域網路

4、SQL 驗證 只需 SQL Server允許登入即可 適用在前端非 Windows環境 程式撰寫連線資料庫 資料庫使用者(Database User) 使用資料庫前的使用者驗證,設定帳號密碼的 policy,SQL 驗證的密碼可設定 policy SQL Server 2005新增功能 需搭配 Windows 2003 Server 設定密碼的強度 密碼內容長度 密碼的複雜度 密碼過期的週期,Demo,利用 Create指令建立登入帳號 設定 SQL驗證的 policy 第一次登入 SQL Server時,需要改變密碼,2授權(authorization),給予權力 可設定在 login帳號與

5、 database user Server等級權力 建立DDL權力 修改 Database權力 Database等級權力 Schema等級權力 Object等級權力,管理權限,如何管理 Server的權限 如何管理 Server-Scope 的權限 如何管理 Database的權限 如何管理 Database-Scope的權限 如何管理 Schema-Scope的權限,如何管理 Server的權限,USE master GRANT ALTER ANY DATABASE TO SERVERXBill,在 Object Explorer,如何管理Server-Scope權限,Server-scop

6、e 安全 HTTP endpoints Certificates,USE master GRANT CONNECT ON HTTP ENDPOINT : AWWebService TO SERVERXBill,USE AdventureWorks GRANT ALTER ANY USER TO Ted,在 Object Explorer,連接伺服器,1,按資料庫右鍵選擇屬性,2,Permissions分頁,3,指定權限,4,如何管理 Database權限,如何管理Database-Scope 權限,USE AdventureWorks GRANT SELECT ON SCHEMA : sale

7、s TO Ted,在 Object Explorer,連接伺服器,1,展開物件,2,按物件右鍵選擇屬性,3,Permissions分頁,4,指定權限,5,如何管理Schema-Scope 權限,USE AdventureWorks GRANT EXECUTE ON TYPE : addressType TO Ted,在 Object Explorer,連接伺服器,1,展開物件,2,按物件右鍵選擇屬性,3,Permissions分頁,4,指定權限,5,USE AdventureWorks GRANT SELECT ON sales.orders TO Ted,Demo,授權給 login id,

8、讓它可以登入 SQL Server 授權給資料庫使用者,讓它對 create table有權力(設定database權力),使用者與 Schema 的分離,SQL Server 2000 只有 dbo.object名稱 不支援Schema Server.database.dbo.object SQL Server 2005 支援 schema 原本的 dbo,置換成 schema,用來解決物件使用的問題,User,Database Object,Owned By,User 2,刪除使用者也許會造成應用程式需要改變!,刪除使用者 = 應用程式重寫,App1,App2,SELECT custID

9、FROM User1.OrdersTable,App1 Modified,App2 modified,OrdersTable,InsertOrderProc,SELECT custID FROM User2.OrdersTable,Exec User1.InsertOrderProc (orderid),Exec User2.InsertOrderProc (orderid),Owning user = User1 SCHEMA = User1,Owning user = User2 SCHEMA = User2,解決方法Schema與 User分離,User,Database Object,

10、Schema,contained in,Owned by,Owned By,User 2,Owned by,刪除使用者不會影響到應用程式的改寫!,可以利用 Default Schema解決問題,Schema,contained in,User 2,Owned by,Default Schema,User1,Default Schema S1,User2,User3,Demo,設定 schema 設定 default schema 利用 schema完成資料存取,不同權限檢視不同的中繼資料,查詢靜態的中繼資料 ViewsSystem Views目錄 SELECT * FROM sys.table

11、s 查詢動態的中繼資料 ViewsSystem Views目錄 SELECT * FROM sys.db_tran_locks 使用者不可直接存取系統資料表 不同權限的使用者所得到的Metadata結果不同 可設定不能讀取 store procedure的定義,Demo,不同權限檢視的 Metadata也有所不同 SELECT * FROM sys.tables 故意刪除沒有權力刪除的資料表 會出現資料表不存在或是沒有權限 可以設定 deny看 store procedure定義的權力,CREATE PROCEDURE GetOrders WITH EXECUTE AS CALLER AS S

12、ELECT * FROM sales.orders,Execution Context 與 Broken Ownership Chaining,SELF,呼叫者 Allen,Owner,Rose,資料庫物件 擁有者 Adonis,?,View裡面的 table,owner name不同,權限設定會 發生問題 範例: Maria 執行: Tom 執行:,中斷 Ownership Chains,GRANT SELECT ON view2 TO Tom,SELECT * FROM maria.view2,maria.view2,lucia.view1,lucia.table1,Execution C

13、ontext,User 3,執行時檢查User3權限,執行時檢查User3權限,User1.Proc1,User1.T1,執行時檢查User3權限,不用檢查 User3權限,Execute AS X ,執行時檢查User3權限,檢查 X. 而不是 user3,SQL Server2005,SQL 2000,Execution Context的使用,Execute AS CALLER 若 schema名稱不同,檢查呼叫者有無權力 預設的設定,與 SQL Server 2000相似 Execute AS UserName 以該 UserName身份執行程式 Execute AS SELF 以建立該

14、物件的帳號執行 Execute AS OWNER 以 Owner的身份執行,Demo,Execution Context的使用,SQL Injection,SELECT UserName FROM ApplicationUsers WHERE UserId = + userId + AND Password = + password + ,SELECT UserName FROM ApplicationUsers WHERE UserId = % OR 1=1; - AND Password = 1234,減少 SQL Server 被攻擊機會,檢查所有使用者的資料輸入,抓取系統的錯誤訊息,使

15、用參數化的查詢與預存程序,Replication安全性設定,選擇適當的驗證模式 Windows驗證優於 Mixed驗證 使用 Replication Agent安全 SQL 2005中,每個 Agent皆可設定安全 使用 PAL(publication access list) 保護 snapshot目錄 Merge Distribution Agent需要讀的權力 Snapshot agent需要寫的權力 保護 Internet中的 replication 利用 VPN或是 SSL提升安全,Demo,Replication的 agent安全性設定,Agent、Database Mail安全性

16、設定,必要時才打開 Database mail 可使用 Private Database mail profile 限制夾帶檔案大小及副檔名,Demo,設定 Database Mail,Application Role安全設定,允許使用者只能用某支應用程式讀取資料 新增sp_unsetapprole功能,Demo,利用 Application Role維護安全性,Audit審核的機制,決定哪些事件需要審核 審核資訊存放哪裡? 審核對效能的影響 誰要負責分析審核事件資訊?,利用 DDL Trigger審核SQL事件,CREATE TRIGGER ddl_trig_login ON ALL SER

17、VER FOR DDL_LOGIN_EVENTS AS PRINT Login Event Issued. .,評估是否 DDL triggers是適合作為審核,決定觸發程序的範圍,決定哪些事件需要審核,指定哪些操作是被允許的,DDL Triggers,Names,DDL_log,DDL_Trigger,Database,CREATE TRIGGER DDL_Trigger ON DATABASE AFTER DROP_TABLE AS INSERT INTO DDL_log VALUES (資料表被移除),DROP TABLE Names,Table Dropped,Demo,利用 DDL

18、Trigger審核SQL事件,SQL Agent Proxies,存取外部資源時使用 可多個 SQL 帳號對應 Windows帳號,SQL Agent Proxies,SQL Server,User No ActiveX Access,SQL Agent Job ActiveX Subsystem,Agent Proxy ActiveX Subsystem,Demo,設定 SQL帳號對應 Windows帳號 建立 SQL登入帳號 設定為msdb使用者,並具有 SQLAgentUserRole 設定Credentials,指向 Windows帳號 設定 Proxies,對應 Credential

19、s,並加入 SQL Login帳號 建立 Job,Owner為 SQL登入帳號 在 step步驟,設定 run as Credential,HTTP Endpoints,SQL Server 2005,HTTP Endpoint Stored Procedure Function,Client PC .NET Application Consumes Web Services,CREATE ENDPOINT,資料加密,設定在 client端 伺服器需要certificate 需要為 self-signed certificate 做額外的組態,Server Requested,Client R

20、equested,設定在 Server等級 適用在所有通訊協定 使用 self-signed certificate,資料庫等級的加密,分享同一把 public key 速度快 不用來做簽章,對稱,非對稱,憑證,獨立的 key 速度較對稱來的慢 可用來做數位簽章,包含憑證授權 驗證加密鑰匙 用來做數位簽章,Certificates,預設為信任 較昂貴 網際網路應用程式,Windows Server CA 預設為不信任 網際網路應用程式,內建(利用 Create CERTIFICATE指令) Server-requested encryption Client 也需要組態,Third Party,Root CA,Self-signed,Self-signed的加密原理,Demo,設定資料表欄位對稱加密 設定資料表欄位非對稱加密,Surface Area Configuration,全新安裝,SQL Server 2005,SQL Server 2000,SQL Server 2005,服務關閉,一些功能預設沒有開啟,一些功能預設隨著升級而啟動,Surface Area Configuration 設定服務與連線,Surface Area Config

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论