《《數(shù)據(jù)庫(kù)安全性》課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫(kù)安全性》課件(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第八章: 數(shù)據(jù)庫(kù)安全性,數(shù)據(jù)庫(kù)安全性控制 Sybase數(shù)據(jù)庫(kù)數(shù)據(jù)安全性控制介紹,數(shù)據(jù)庫(kù)安全性控制,數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法使用所造成的數(shù)據(jù)泄漏,更改和破壞 系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要性能指標(biāo)之一 計(jì)算機(jī)系統(tǒng)的安全模型 存取控制: 按預(yù)先定以好的用戶權(quán)限控制用戶對(duì)數(shù)據(jù)庫(kù)的存取, 保證用戶只能存取到有權(quán)存取的數(shù)據(jù),用戶,DBMS,OS,DB,,,,,,,用戶標(biāo)識(shí)和鑒別,存取控制,操作系統(tǒng)安全保護(hù),數(shù)據(jù)密碼存儲(chǔ),,數(shù)據(jù)庫(kù)安全性控制,用戶權(quán)限: 用戶對(duì)數(shù)據(jù)庫(kù)中的不同數(shù)據(jù)對(duì)象允許執(zhí)行的操作權(quán)限 關(guān)系系統(tǒng)中的存取權(quán)限: 不同的DBMS具體實(shí)現(xiàn)方法是存在一些差別的,,數(shù)據(jù)本
2、身:表、屬性列 外模式, 模式, 內(nèi)模式:,不同類型的數(shù)據(jù)對(duì)象有不同的操作權(quán)力,,數(shù)據(jù)庫(kù)安全性控制,存取控制機(jī)制包括: 定義用戶權(quán)限, 該定義被存放到數(shù)據(jù)字典中 合法權(quán)限檢查, 根據(jù)數(shù)據(jù)字典檢查用戶權(quán)限,,Sybase數(shù)據(jù)安全性控制介紹,數(shù)據(jù)庫(kù)安全子系統(tǒng): 用戶權(quán)限定義和合法權(quán)檢查機(jī)制組成DBMS安全子系統(tǒng) Oracle數(shù)據(jù)庫(kù)的安全性措施(自學(xué)) 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的結(jié)構(gòu),,,,DB1,,DB2,,DBn,,...,客戶端1,,客戶端2,,客戶端n,,...,,安全層次:上機(jī)權(quán) DB Server DB 表、屬性列,Sybase數(shù)據(jù)安全性控制介紹,DB server安全層次 任何一個(gè)合法的操作系
3、統(tǒng)帳戶, 要想訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù), 必須經(jīng)過(guò)DB server的系統(tǒng)管理員(SA)給予必要的授權(quán) DB server帳戶 sa帳戶: 通常要求名為sybase的OS 帳戶來(lái)安裝DB server 產(chǎn)品, 安裝完成后, 自動(dòng)生成一個(gè)名為sa的DB server帳戶, sa是唯一的具有SA特權(quán)的超級(jí)用戶 創(chuàng)建DB server的其他帳戶: sa可利用系統(tǒng)過(guò)程sp_addlogin把任何操作系統(tǒng)帳戶接納為 DB server 帳戶,,Sybase數(shù)據(jù)安全性控制介紹,sp_addlogin ,, 改變口令: (也可由SA改變) sp_password , , 例如: sp_addlogin scott
4、, tigger sp_password tigger jagnar, scott 數(shù)據(jù)庫(kù)用戶: 每個(gè)DB server的合法帳戶, 要想訪問(wèn)某個(gè)DB, 還需進(jìn)一步被接納為該DB的合法用戶 定義DB用戶: DB的dbo或系統(tǒng)管理員為當(dāng)前DB定義新的用戶,,Sybase數(shù)據(jù)安全性控制介紹,sp_adduser ,, sp_dropuser 例如: use empdb go sp_adduser scott scottM go 訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象: 一個(gè)數(shù)據(jù)庫(kù)用戶, 要想訪問(wèn)其中的數(shù)據(jù)庫(kù)對(duì)象, 還必須由該對(duì)象的屬主授予相應(yīng)的特權(quán),,Server帳戶scott將以scottM 成為數(shù)據(jù)庫(kù)empdb的用戶
5、,Sybase數(shù)據(jù)安全性控制介紹,組: 如果幾個(gè)用戶都具有相同的特權(quán), 那么可以把它們組成一個(gè)組, 起一個(gè)名字, 然后給這個(gè)組授權(quán)或回收權(quán)限 建立組: 由dbo完成 sp_addgroup 加入組或改變組: sp_changegroup , public組: 每個(gè)數(shù)據(jù)庫(kù)自動(dòng)包含一個(gè)不可被刪除的名為public的組 每個(gè)用戶是public的組員, 還可以且只能再?gòu)膶儆诹硗庖粋€(gè)組,,Sybase數(shù)據(jù)安全性控制介紹,不要授給public過(guò)多的權(quán)限 系統(tǒng)過(guò)程sp_helpgroup: 可以報(bào)告在一個(gè)DB中組的信息 SQL server中的三中角色: SA, SSO和OPER SA(系統(tǒng)管理員角色):
6、管理系統(tǒng)資源, 向DB用戶授權(quán), 授予和回收SA角色, 調(diào)諧系統(tǒng)性能等 SSO(系統(tǒng)安全員): 創(chuàng)建帳戶, 管理帳戶和口令, 授予和回收SSO和OPER角色, 管理審計(jì)系統(tǒng) OPER(操作員角色): 數(shù)據(jù)庫(kù)的備份和裝入 實(shí)際生產(chǎn)系統(tǒng)中: 或讓一個(gè)帳戶身兼三職, 或處于安全和效率的考慮讓不同的帳戶分擔(dān)不同的角色,,Sybase數(shù)據(jù)安全性控制介紹,sa同時(shí)具有三中角色的職責(zé) 授予和回收角色 sp_role “grant”, “sa_role”, wang 通常把DB Server各帳戶分別授予SA, SSO和OPER帳戶, 并鎖定sa帳戶 sp_locklogin login_name, “l(fā)oc
7、k/unlock”,,可以是grant 或revoke,可以是SSO, SA或OPER,Sybase數(shù)據(jù)安全性控制介紹,DB server 帳戶授權(quán)層次 SA: 可以給所有用戶授權(quán) dbo: 只可給本數(shù)據(jù)庫(kù)用戶授權(quán) DB對(duì)象屬主: 只可對(duì)表或視圖授權(quán) 其他用戶和public組: 只能接受授權(quán) dbo: DB server帳戶用create database 命令建立數(shù)據(jù)庫(kù)后, 就成為該數(shù)據(jù)庫(kù)的dbo dbo的權(quán)力(限于該DB) 建表、其他的數(shù)據(jù)庫(kù)對(duì)象,SA,,dbo,,DB對(duì)象屬主,,其他用戶, public組,Sybase數(shù)據(jù)安全性控制介紹,增加DB用戶, 為他們分配權(quán)力 對(duì)DB進(jìn)行備份和恢
8、復(fù) 為了便于授權(quán)管理, 建議讓dbo成為該DB中一切對(duì)象的屬主 dbo可以用setuser命令, 臨時(shí)扮演該DB中任何一個(gè)用戶 SA在訪問(wèn)該DB時(shí)自動(dòng)成為該DB的dbo 數(shù)據(jù)庫(kù)對(duì)象屬主: 指用create命令建立一個(gè)數(shù)據(jù)庫(kù)對(duì)象的數(shù)據(jù)庫(kù)用戶, 此后它對(duì)該對(duì)象具有一切操作權(quán)限,,SQL Server中沒(méi)有該命令,Sybase--授權(quán)控制命令,普通用戶: 不擁有DB和自己的數(shù)據(jù)庫(kù)對(duì)象的用戶 由SA或dbo或?qū)ο髮僦髅黠@授權(quán) 或加入到某組中 權(quán)力 語(yǔ)句權(quán)力: 建立數(shù)據(jù)庫(kù)對(duì)象的語(yǔ)句, 由SA或dbo授予 create database 僅由SA授予,且僅可以在 master中使用,,,進(jìn)
9、行限定 操作,,Sybase--授權(quán)控制命令,create default create procedure create rule create table create view 注意: create index, create trigger僅屬于表的主人, 不可授予他人 授權(quán)語(yǔ)句: grant, revoke grant all| to public| revoke all| from public|,,,dbo可授予建立數(shù)據(jù)庫(kù)對(duì)象的權(quán)利,Sybase--授權(quán)控制命令,例子: 由SA執(zhí)行下列語(yǔ)句 use pubs go grant all to john grant create ta
10、ble to mary go 數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)力: 由對(duì)象屬主進(jìn)行對(duì)象權(quán)利的授予,Sybase--授權(quán)控制命令,表 select insert update delete refrences 視圖 select insert update delete 列 select update 存儲(chǔ)過(guò)程 execute 授權(quán)語(yǔ)句: grant, revoke grant all| on ||() to public| revoke all| on ||() from public|,,Sybase--授權(quán)控制命令,例子: grant all on SC to public revo
11、ke update on SC(Grade) from public 成為數(shù)據(jù)庫(kù)的屬主dbo的方法: 授予 某一DB server賬戶具有創(chuàng)建數(shù)據(jù)庫(kù)的能力: 以SA注冊(cè)后, 在master數(shù)據(jù)庫(kù)中 grant create database to loginname SA創(chuàng)建數(shù)據(jù)庫(kù)DB1后, 改變屬主 use DB1 sp_changeowner loginname Oracle 數(shù)據(jù)安全性控制(自學(xué)),,使用存儲(chǔ)過(guò)程的優(yōu)勢(shì),存儲(chǔ)過(guò)程:在服務(wù)器上的Server環(huán)境下運(yùn)行,可利用Server優(yōu)化器在運(yùn)行時(shí)獲得最佳性能。 例如: CREATE PROCEDURE proc4(p1 char(15)
12、,p2 char(20), p3 int) AS INSERT INTO workers values(p1,p2,p3) RETURN EXEC Proc4 Bob lint,Sales,3333 CREATE PROCEDURE proc_students_dept(dept varchar(20)) AS SELECT * FROM students WHERE department= dept RETURN EXEC proc_students_dept dept=CS,使用存儲(chǔ)過(guò)程的優(yōu)勢(shì),存儲(chǔ)過(guò)程:在服務(wù)器上的Server環(huán)境下運(yùn)行,可利用Server優(yōu)化器在運(yùn)行時(shí)獲得最佳性能。 好處: -性能上,服務(wù)器功能強(qiáng)大,在物理上在同一系統(tǒng)中,無(wú)網(wǎng)絡(luò)傳輸; -客戶/服務(wù)器開發(fā)上,客戶與服務(wù)器方開發(fā)任務(wù)分離,客戶方應(yīng)用程序可重復(fù)使用服務(wù)器端組件; -安全性上,用存儲(chǔ)過(guò)程來(lái)增刪改操作,編程時(shí)可控制上述操作; -數(shù)據(jù)完整性上,用存儲(chǔ)過(guò)程實(shí)現(xiàn)合法性檢查等; -提高數(shù)據(jù)與應(yīng)用的獨(dú)立性,改變數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)時(shí),可通過(guò)修改存儲(chǔ)過(guò)程來(lái)避免修改應(yīng)用。,