Microsoft TechNet 技術講座--資料庫技術升級系列三 精誠公司恆逸資訊 楊先民

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
第四章 数据库管理和使用.
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
第十三章 SQL Server的安全管理.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
MySQL 使用者名稱:USERNAME (上限16個字元)
MySQL資料庫安全管理.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
Xoops架站器介紹 基隆市教育網路中心 王言俊 按一下以新增備忘稿.
文科计算机小公共课规划教材 Access 程序设计.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
第8章 SQL Server安全管理 谁都可以任意访问数据库吗?
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
大專院校校園e 化 PKI、智慧卡應用與整合.
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
Microsoft SQL Server 2016 安全新功能
An Introduction to Database System
数据库应用与程序设计.
第二期实验室工作人员培训讲座(三) 加强规范化建设 提高仪器设备管理水平 设备处 黄久龙 2017年9月13日 徐州师范大学设备处 黄久龙.
第五讲 利用视图进行查询优化.
微软SQL服务器Always-On Technologies: 针对局部损害和人为错误灾难的恢复策略
關聯式資料庫.
第六章 學習SQL語言.
課程名稱:資料庫系統 授課老師:李春雄 博士
資料檔案的安全性管理 羅英嘉 2007年4月.
SQL Injection (資料隱碼) 簡介
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
Chap 10 SQL定義、操作與控制指令.
Basis基本操作、使用者 管理與權限設定
第 14 章 預存程序.
Microsoft SQL Server 2000 李金双.
資料庫安全 (Database Security)
課程名稱:資料庫系統 授課老師:李春雄 博士
第 16 章 觸發程序.
SQL Server 2000 数据库入门.
Windows 2000/XP网络组建与系统管理 李燕 中南分校.
5 数据库管理与保护 数据库运行的最小逻辑工作单位是事务,所有对数据库的操作,都以事务作为一个整体来执行或撤销。
操作資料庫 教授:楊維邦 教授 助教:黃存賢 陳廷宣.
第9章 SQL Server的数据库保护技术 教学目标:通过本章学习,了解SQL Server的安全体系结构的含义和安全认证模式的分类;掌握SQL Server登录账号、用户账号及角色的创建方法;熟悉权限的分类,掌握对象权限和语句权限的管理方法;明确SQL Server中数据完整性的种类,掌握数据完整性实现的具体方法;熟悉SQL.
第6章 SQL Server权限管理 6.1 SQL Server权限管理策略 6.2 用户权限管理 上一章 返回目录.
第 6 章 使用者權限.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
Ch4.SQL Server 2005資料庫組成員元件介紹
SQL Injection (資料隱碼) 學生:a 吳倩瑜 指導教授:梁明章.
第二章 防火墙基础技术.
实验二讲评 … 张榆….
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
数据库技术.
数据库应用技术 SQL Server 2005.
第20章 MySQL数据库.
ORACLE 第九讲 触发器.
Microsoft SQL Server 2008 報表服務_設計
An Introduction to Database System
第九章 创建数据库.
橫跨電腦、手機與軟體的全方位端點管控解決方案
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
6 SQL語言與資料庫建置 6-1 SQL語言的基礎 6-2 SQL Server的資料庫結構 6-3 建立使用者資料庫
SQL查询语句 蔡海洋.
第三章 SQL Server数据管理.
第9章 存储过程的创建和使用 9.1 存储过程简介 9.2 创建存储过程 9.3 修改存储过程 9.4 删除存储过程 9.5 执行存储过程.
第9章 视 图 教学提示:用户在查询数据库中的数据时,除了直接查看数据库中的表中的数据以外,还可以通过视图来查看表中的数据,也就是说,视图为用户提供了另外一种查看表中的数据的方式。 视图是一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
Web安全基础教程
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

Microsoft TechNet 技術講座--資料庫技術升級系列三 精誠公司恆逸資訊 楊先民 SQL Server 2005 資料 的安全存取 精誠公司恆逸資訊 楊先民

上次回家作業解答 Q1: 在資料庫鏡像中,鏡像伺服器可否用來擔任報表的資料來源? Q2: 如何增加備份媒體的可靠度? 需搭配資料庫快照 利用鏡像備份,同時儲存多個備份

Microsoft TechNet 技術講座--資料庫技術升級系列三 大綱 帳號密碼安全性原則 使用者與結構定義分開 不同權限檢視不同的中繼資料 Execution Context SQL Injection Replication安全性設定 Agent、Database Mail安全性設定

Microsoft TechNet 技術講座--資料庫技術升級系列三 大綱—續 Application Role安全設定 利用 Stored Procrdure、View增進安全 Audit審核的機制 利用 DDL Trigger審核 SQL事件 SQL Server自訂帳號對應到 Windows帳號 支援憑證的對稱,非對稱加密 預設關閉各選項功能 限制 .NET程式碼執行

可賦予存取權限的物件(Securables) 帳號密碼安全性原則 可賦予存取權限的物件(Securables) 權限(Permissions) Principals Windows 群組 Files 網域使用者帳戶 ACL Registry Keys 本機使用者帳戶 Windows GRANT/REVOKE/DENY CREATE ALTER DROP CONTROL CONNECT SELECT EXECUTE UPDATE DELETE INSERT TAKE OWNERSHIP VIEW DEFINITION BACKUP SQL Server 登入帳戶 伺服器 伺服器角色 SQL Server 資料庫 User 資料庫角色 Schema Application Role Database Group

Microsoft TechNet 技術講座--資料庫技術升級系列三 安全性的基本 驗證(authentication) 檢查是否為正確的使用者 有 Windows驗證與 SQL驗證 授權(authorization) 給與使用者權力 利用 Fixed Role來設定 owner所建立的物件,該 owner有完全的權力

Microsoft TechNet 技術講座--資料庫技術升級系列三 2驗證(authentication) Windows驗證 需要有 Windows帳號或 AD帳號 SQL Server要允許登入(Grant) 適用在區域網路 SQL 驗證 只需 SQL Server允許登入即可 適用在前端非 Windows環境 程式撰寫連線資料庫 資料庫使用者(Database User) 使用資料庫前的使用者驗證

Microsoft TechNet 技術講座--資料庫技術升級系列三 設定帳號密碼的 policy SQL 驗證的密碼可設定 policy SQL Server 2005新增功能 需搭配 Windows 2003 Server 設定密碼的強度 密碼內容長度 密碼的複雜度 密碼過期的週期 99% = 87.6 hours = 3 days and 15.6 hours 99.9 % = 8.76 hours 99.99% = 52.56 minutes 99.999% = 5.26 minutes

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo 利用 Create指令建立登入帳號 設定 SQL驗證的 policy 第一次登入 SQL Server時,需要改變密碼

2授權(authorization) 給予權力 Server等級權力 Database等級權力 Schema等級權力 Object等級權力 可設定在 login帳號與 database user Server等級權力 建立DDL權力 修改 Database權力 Database等級權力 Schema等級權力 Object等級權力

Microsoft TechNet 技術講座--資料庫技術升級系列三 管理權限 如何管理 Server的權限 如何管理 Server-Scope 的權限 如何管理 Database的權限 如何管理 Database-Scope的權限 如何管理 Schema-Scope的權限

Microsoft TechNet 技術講座--資料庫技術升級系列三 如何管理 Server的權限 在 Object Explorer 連接伺服器 1 按登入帳號右鍵選擇屬性 2 Securables頁面,選擇 Add Objects 3 增加 <servername> 4 指定權限 5 USE master GRANT ALTER ANY DATABASE TO [SERVERX\Bill]

Microsoft TechNet 技術講座--資料庫技術升級系列三 如何管理Server-Scope權限 Server-scope 安全 HTTP endpoints Certificates USE master GRANT CONNECT ON HTTP ENDPOINT :: AWWebService TO [SERVERX\Bill]

Microsoft TechNet 技術講座--資料庫技術升級系列三 如何管理 Database權限 在 Object Explorer 1 連接伺服器 2 按資料庫右鍵選擇屬性 3 Permissions分頁 4 指定權限 USE AdventureWorks GRANT ALTER ANY USER TO Ted

如何管理Database-Scope 權限 Microsoft TechNet 技術講座--資料庫技術升級系列三 如何管理Database-Scope 權限 在 Object Explorer 連接伺服器 1 展開物件 2 按物件右鍵選擇屬性 3 4 Permissions分頁 The MSCS service account must be a part of the administrator group on each node of the cluster for SQL Server. The IsAlive thread runs under the context of the cluster service account, and not the SQL Server service account. If you remove the MSCS service account, the IsAlive thread will no longer be able to create a trusted connection, and you will lose access to the virtual server. 指定權限 5 USE AdventureWorks GRANT SELECT ON SCHEMA :: sales TO Ted

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

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo 授權給 login id,讓它可以登入 SQL Server 授權給資料庫使用者,讓它對 create table有權力(設定database權力)

使用者與 Schema 的分離 SQL Server 2000 SQL Server 2005 只有 dbo.object名稱 Server.database.dbo.object SQL Server 2005 支援 schema 原本的 dbo,置換成 schema

Microsoft TechNet 技術講座--資料庫技術升級系列三 用來解決物件使用的問題 Table View SP Function User 2 Database Object Owned By User 名稱解析問題 Eg: Select * from Foo CallingUser.foo Dbo.foo 刪除使用者也許會造成應用程式需要改變!

Microsoft TechNet 技術講座--資料庫技術升級系列三 刪除使用者 => 應用程式重寫 SELECT custID FROM User1.OrdersTable Owning user = User1 SCHEMA = User1 App1 Owning user = User2 SCHEMA = User2 App1 Modified OrdersTable SELECT custID FROM User2.OrdersTable Exec User1.InsertOrderProc (@orderid) App2 InsertOrderProc App2 modified Exec User2.InsertOrderProc (@orderid)

Microsoft TechNet 技術講座--資料庫技術升級系列三 解決方法Schema與 User分離 Table View Stored Proc Function User 2 Owned by Owned By Database Object contained in Owned by Schema User Most of the Availability Features fall within the Upgrade Immediate and Minimal Work to Leverage categories… But there are many other features to work with once you’ve designed your database to stay available. NOTE: The SQLCLR, Service Broker, etc. bullets appear on click. Mention that many of these features will be discussed in other sessions……. 刪除使用者不會影響到應用程式的改寫!!

可以利用 Default Schema解決問題 Microsoft TechNet 技術講座--資料庫技術升級系列三 可以利用 Default Schema解決問題 Table View Stored Proc Function User 2 Owned by contained in Schema Name Resolution Select * from foo S1. foo Dbo.foo Default Schema User1 User2 Default Schema S1 User3

Demo 設定 schema 設定 default schema 利用 schema完成資料存取

不同權限檢視不同的中繼資料 查詢靜態的中繼資料 查詢動態的中繼資料 使用者不可直接存取系統資料表 <資料庫名稱>\Views\System Views目錄 SELECT * FROM sys.tables 查詢動態的中繼資料 SELECT * FROM sys.db_tran_locks 使用者不可直接存取系統資料表 不同權限的使用者所得到的 Metadata結果不同 可設定不能讀取 store procedure的定義

Demo 不同權限檢視的 Metadata也有所不同 故意刪除沒有權力刪除的資料表 SELECT * FROM sys.tables 故意刪除沒有權力刪除的資料表 會出現資料表不存在或是沒有權限 可以設定 deny看 store procedure定義的權力

Execution Context 與 Broken Ownership Chaining Microsoft TechNet 技術講座--資料庫技術升級系列三 Execution Context 與 Broken Ownership Chaining 預存程序或自訂函數 建立者 John SELECT * FROM sales.orders ? 資料庫物件 擁有者 Adonis 呼叫者 Allen Execution context 身分 CREATE PROCEDURE GetOrders WITH EXECUTE AS CALLER AS SELECT * FROM sales.orders Owner 'Rose' SELF

Microsoft TechNet 技術講座--資料庫技術升級系列三 中斷 Ownership Chains View裡面的 table,owner name不同,權限設定會 發生問題 範例: Maria 執行: Tom 執行: maria.view2 lucia.view1 GRANT SELECT ON view2 TO Tom lucia.table1 SELECT * FROM maria.view2

Execution Context SQL 2000 SQL Server 2005 User2.Proc1 User1.T1 User 3 ‘Execute AS ‘X’ ’ User 3 User2.Proc1 User1.T1 執行時檢查User3權限 檢查 ‘X’. 而不是 user3

Execution Context的使用 Execute AS CALLER Execute AS ‘UserName’ 若 schema名稱不同,檢查呼叫者有無權力 預設的設定,與 SQL Server 2000相似 Execute AS ‘UserName’ 以該 UserName身份執行程式 Execute AS SELF 以建立該物件的帳號執行 Execute AS OWNER 以 Owner的身份執行

Demo Execution Context的使用

Microsoft TechNet 技術講座--資料庫技術升級系列三 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 被攻擊機會 檢查所有使用者的資料輸入 ü 抓取系統的錯誤訊息 ü 使用參數化的查詢與預存程序 ü

Microsoft TechNet 技術講座--資料庫技術升級系列三 Replication安全性設定 選擇適當的驗證模式 Windows驗證優於 Mixed驗證 使用 Replication Agent安全 SQL 2005中,每個 Agent皆可設定安全 使用 PAL(publication access list) 保護 snapshot目錄 Merge Distribution Agent需要讀的權力 Snapshot agent需要寫的權力 保護 Internet中的 replication 利用 VPN或是 SSL提升安全

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo Replication的 agent安全性設定

Agent、Database Mail安全性設定 Microsoft TechNet 技術講座--資料庫技術升級系列三 Agent、Database Mail安全性設定 必要時才打開 Database mail 可使用 Private Database mail profile 限制夾帶檔案大小及副檔名

Demo 設定 Database Mail

Application Role安全設定 允許使用者只能用某支應用程式讀取資料 新增sp_unsetapprole功能 Orders OrderID CustomerID EmployeeID 10248 10249 10250 VINET TOMSP HANAR 3 1 2 ... Microsoft Excel 自訂應用程式

Demo 利用 Application Role維護安全性

Audit審核的機制 決定哪些事件需要審核 審核資訊存放哪裡? 審核對效能的影響 誰要負責分析審核事件資訊?

利用 DDL Trigger審核SQL事件 ü ü ü ü 評估是否 DDL triggers是適合作為審核 決定觸發程序的範圍 CREATE TRIGGER ddl_trig_login ON ALL SERVER FOR DDL_LOGIN_EVENTS AS PRINT 'Login Event Issued.' ... 評估是否 DDL triggers是適合作為審核 ü 決定觸發程序的範圍 ü 決定哪些事件需要審核 ü 指定哪些操作是被允許的 ü

Microsoft TechNet 技術講座--資料庫技術升級系列三 DDL Triggers Names DROP TABLE Names Database DDL_log ‘Table Dropped’ CREATE TRIGGER DDL_Trigger ON DATABASE AFTER DROP_TABLE AS INSERT INTO DDL_log VALUES (‘資料表被移除’) DDL_Trigger

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo 利用 DDL Trigger審核SQL事件

Microsoft TechNet 技術講座--資料庫技術升級系列三 SQL Agent Proxies 存取外部資源時使用 可多個 SQL 帳號對應 Windows帳號

Microsoft TechNet 技術講座--資料庫技術升級系列三 SQL Agent Proxies SQL Server SQL Agent Job ActiveX Subsystem User No ActiveX Access Agent Proxy ActiveX Subsystem

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo 設定 SQL帳號對應 Windows帳號 建立 SQL登入帳號 設定為msdb使用者,並具有 SQLAgentUserRole 設定Credentials,指向 Windows帳號 設定 Proxies,對應 Credentials,並加入 SQL Login帳號 建立 Job,Owner為 SQL登入帳號 在 step步驟,設定 run as Credential

HTTP Endpoints CREATE ENDPOINT HTTP Endpoint Stored Procedure Function SQL Server 2005 Client PC .NET Application Consumes Web Services

資料加密 Server Requested Client Requested 設定在 Server等級 適用在所有通訊協定 使用 self-signed certificate Server Requested 設定在 client端 伺服器需要certificate 需要為 self-signed certificate 做額外的組態 Client Requested

Microsoft TechNet 技術講座--資料庫技術升級系列三 資料庫等級的加密 分享同一把 public key 速度快 不用來做簽章 對稱 獨立的 key 速度較對稱來的慢 可用來做數位簽章 非對稱 包含憑證授權 驗證加密鑰匙 用來做數位簽章 憑證

Microsoft TechNet 技術講座--資料庫技術升級系列三 Certificates Third Party 預設為信任 較昂貴 網際網路應用程式 Root CA Windows Server CA 預設為不信任 網際網路應用程式 內建(利用 Create CERTIFICATE指令) Server-requested encryption Client 也需要組態 Self-signed

Microsoft TechNet 技術講座--資料庫技術升級系列三 Self-signed的加密原理

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo 設定資料表欄位對稱加密 設定資料表欄位非對稱加密

Surface Area Configuration Microsoft TechNet 技術講座--資料庫技術升級系列三 Surface Area Configuration 服務關閉,一些功能預設沒有開啟 全新安裝 SQL Server 2005 Surface Area Configuration 設定服務與連線 Surface Area Configuration 功能 一些功能預設隨著升級而啟動 SQL Server 2000 SQL Server 2005

Microsoft TechNet 技術講座--資料庫技術升級系列三 使用 SAC.EXE SAC out NY-SQL-02.out –S NY-SQL-02 –I MSSQLSERVER SAC in NY-SQL-02.out –S NY-SQL-01 NY-SQL-02 NY-SQL-01

Microsoft TechNet 技術講座--資料庫技術升級系列三 Demo 執行C:\Program Files\Microsoft SQL Server\90\Shared目錄下 SAC out output.out –S cenet –I MSSQLSERVER 可以匯入匯出某台電腦的組態設定

限制 .NET程式碼執行 有必要時才允許 CLR的程式 Safe External access Unsafe 限制使用,只限於內部資料 允許使用外部資源,例如如檔案或是網路系統 Unsafe 最不安全,毫無限制,不建議

Demo 限制 .NET程式碼的執行

結論 安全需要多做一些設定才能達到 愈安全,對使用者愈不方便 SQL 2005預設將所有安全選項都關閉

回家作業 Q1: 在 SQL Server 2005的環境中,何為Principals? Q2: 試自行比較對稱與非對稱式加密的不同?

回家作業解答 Q1: 在 SQL Server 2005的環境中,何為Principals? Q2: 試自行比較對稱與非對稱式加密的不同? Windows群組、網域使用者帳戶、本機使用者帳戶、SQL登入帳戶、伺服器角色、資料庫角色、Application role都是 principals Q2: 試自行比較對稱與非對稱式加密的不同? 對稱加密快但較不安全,加解密都用同一把key 非對稱加密慢但較安全,會由CA Server產生一組 public與private key