數(shù)據(jù)安全 課件全套 陳鐵明 第1-6章 數(shù)據(jù)庫(kù)安全 數(shù)據(jù)隱私保護(hù)技術(shù)_第1頁(yè)
數(shù)據(jù)安全 課件全套 陳鐵明 第1-6章 數(shù)據(jù)庫(kù)安全 數(shù)據(jù)隱私保護(hù)技術(shù)_第2頁(yè)
數(shù)據(jù)安全 課件全套 陳鐵明 第1-6章 數(shù)據(jù)庫(kù)安全 數(shù)據(jù)隱私保護(hù)技術(shù)_第3頁(yè)
數(shù)據(jù)安全 課件全套 陳鐵明 第1-6章 數(shù)據(jù)庫(kù)安全 數(shù)據(jù)隱私保護(hù)技術(shù)_第4頁(yè)
數(shù)據(jù)安全 課件全套 陳鐵明 第1-6章 數(shù)據(jù)庫(kù)安全 數(shù)據(jù)隱私保護(hù)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩369頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)安全性控制(數(shù)據(jù)庫(kù)完整性)《大數(shù)據(jù)安全與隱私保護(hù)》【第一章數(shù)據(jù)庫(kù)安全】第1講

數(shù)據(jù)庫(kù)安全性控制-數(shù)據(jù)庫(kù)完整性目的與要求:掌握數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性、約束、索引以及視圖等。重點(diǎn)與難點(diǎn):數(shù)據(jù)完整性與約束(難點(diǎn))索引(難點(diǎn))視圖(重點(diǎn))

主要內(nèi)容:1.數(shù)據(jù)庫(kù)完整性1.1完整性1.2約束2.索引2.1索引概述2.2創(chuàng)建索引2.3管理索引★3.視圖3.1視圖概述3.2創(chuàng)建視圖3.3管理視圖3.4利用視圖管理數(shù)據(jù)★第1講

數(shù)據(jù)庫(kù)安全性控制-數(shù)據(jù)庫(kù)完整性1.1完整性1.1完整性數(shù)據(jù)完整性是數(shù)據(jù)庫(kù)設(shè)計(jì)方面一個(gè)非常重要的問(wèn)題,數(shù)據(jù)完整性代表數(shù)據(jù)的正確性、一致性和可靠性。實(shí)施數(shù)據(jù)完整性的目的在于確保數(shù)據(jù)的質(zhì)量。在SQLServer中,根據(jù)數(shù)據(jù)完整性措施所作用的數(shù)據(jù)庫(kù)對(duì)象和范圍不同,可以將數(shù)據(jù)完整性分類(lèi)為實(shí)體完整性、用戶(hù)自定義完整性和參照完整性。實(shí)體完整性把數(shù)據(jù)表中的每行看作一個(gè)實(shí)體,它要求所有的行都具有唯一的標(biāo)識(shí);用戶(hù)自定義完整性要求數(shù)據(jù)表中指定列的數(shù)據(jù)具有正確的數(shù)據(jù)類(lèi)型、格式和有效的數(shù)據(jù)范圍;參照完整性維持被參照表和參照表之間的數(shù)據(jù)一致性。1.2約束1.2約束約束是數(shù)據(jù)庫(kù)中的數(shù)據(jù)完整性實(shí)現(xiàn)的具體方法。在SQLServer中,包括5種約束類(lèi)型:primarykey約束foreignkey約束unique約束check約束default約束1.2約束1.主鍵約束(PrimaryKeyConstraint)主鍵約束指定表中的列或列的組合的值在表中具有唯一性,即能唯一地指定一行記錄。這些列稱(chēng)為主鍵列,且IMAGE和TEXT類(lèi)型的列不能被指定為主鍵列,也不允許指定主鍵列有NULL屬性。CONSTRAINTconstraint_name----指定約束的名稱(chēng)。PRIMARYKEY[CLUSTERED|NONCLUSTERED]----指定索引類(lèi)別,CLUSTERED為缺省值。(column_name1[,column_name2,…,column_name16])----指定組成主鍵列的列名。主鍵列最多由16個(gè)列組成。1.2約束【例1】創(chuàng)建一個(gè)物料表,以物料代碼和名稱(chēng)為主關(guān)鍵字。USE

POGOCREATE

TABLE

物料表(物料代碼

int

IDENTITY(100,1)

NOT

NULL,物料名稱(chēng)

nvarchar(50)

NOT

NULL,物料類(lèi)別

int

NOT

NULL,計(jì)量單位

nvarchar(20)

NULL,CONSTRAINT

PK_FItemID

PRIMARY

KEY(物料代碼,物料名稱(chēng)))ON[PRIMARY]GO1.2約束【例2】添加主鍵約束(將采購(gòu)訂單號(hào)FBillNo作為采購(gòu)訂單POOrder的主鍵。ALTER

TABLE

采購(gòu)訂單ADD

CONSTRAINT

PK_FBillNo

PRIMARY

KEY(采購(gòu)訂單號(hào))注意:主鍵約束保證數(shù)據(jù)的唯一性,非空性?!纠?】刪除主鍵約束(將物料表的主鍵約束刪除)。ALTER

TABLE

物料表DROP

CONSTRAINT

PK_FItemIDGO1.2約束2.外鍵約束(ForeignKeyConstraint)外鍵約束定義了表與表之間的關(guān)系。當(dāng)一個(gè)表中的列或列的組合和其它表中的主鍵定義相同時(shí),就可以將這些列或列的組合定義為外鍵。這樣,當(dāng)在定義主鍵約束的表中更新列值時(shí),其它表中有與之相關(guān)聯(lián)的外鍵約束的表中的外鍵列也將被相應(yīng)地做相同的更新。外關(guān)鍵字約束的作用還體現(xiàn)在,當(dāng)向含有外鍵的中插入數(shù)據(jù)時(shí),如果與之相關(guān)聯(lián)的表的列中沒(méi)有與插入的外鍵列值相同的值時(shí),系統(tǒng)會(huì)拒絕插入數(shù)據(jù)。與主鍵相同,不能使用一個(gè)定義為T(mén)EXT或IMAGE數(shù)據(jù)類(lèi)型的列作為外鍵列。外鍵最多由16個(gè)列組成。1.2約束【例4】創(chuàng)建一個(gè)采購(gòu)訂單分錄表,與物料表相關(guān)聯(lián)。USE

POGOCREATE

TABLE

采購(gòu)訂單分錄表

(分錄號(hào)

INT,采購(gòu)訂單號(hào)

VARCHAR(30),物料代碼

INT,訂貨數(shù)量

FLOAT,單價(jià)

FLOAT,金額

FLOAT,計(jì)量單位

INT,交貨日期

DATETIME,備注

VARCHAR(255),CONSTRAINT

PK_POOrderEntry

PRIMARY

KEY(分錄號(hào),采購(gòu)訂單號(hào)),CONSTRAINT

FK_FItemID

FOREIGN

KEY(物料代碼)

References

物料表(物料代碼))ON

[PRIMARY]GO注意:被引用的主鍵必須是唯一的。1.2約束【例5】添加外鍵約束(采購(gòu)訂單頭表和采購(gòu)訂單分錄表建立關(guān)系,關(guān)聯(lián)字段采購(gòu)訂單號(hào))ALTER

TABLE

采購(gòu)訂單分錄表ADD

CONSTRAINT

FK_FBillNo

FOREIGN

KEY(采購(gòu)訂單號(hào))

References

采購(gòu)訂單頭表

(采購(gòu)訂單號(hào))GO【例6】刪除外鍵約束(將采購(gòu)訂單分錄表的外鍵約束FK_FItemID刪除)ALTER

TABLE

采購(gòu)訂單分錄表DROP

CONSTRAINT

FK_FItemIDGO1.2約束3.唯一約束(UniqueConstraint)唯一約束指定列或列的組合的值具有唯一性,以防止在列中輸入重復(fù)的值。唯一約束指定的列可以有NULL屬性。由于主鍵值是具有唯一性的,因此主鍵列不能再設(shè)定唯一約束。唯一約束最多由16個(gè)列組成。1.2約束【例7】定義一個(gè)員工信息表,其中員工的身份證號(hào)具有唯一性。USE

POGOCREATE

TABLE

Employees

(emp_id

CHAR(8),emp_name

CHAR(10)

,emp_cardid

CHAR(18),emp_age

INT,CONSTRAINT

PK_emp_id

PRIMARY

KEY(emp_id),CONSTRAINT

UK_emp_cardid

UNIQUE(emp_cardid))

ON

[PRIMARY]GO1.2約束【例8】添加唯一約束(身份證號(hào))。ALTER

TABLE

EmployeesADD

CONSTRAINT

UK_cardid

UNIQUE(emp_cardid)GO【例9】刪除唯一約束(身份證號(hào))。ALTER

TABLE

EmployeesDROP

CONSTRAINT

UK_cardidGO注意:唯一性,可以空,但只能有一個(gè)。1.2約束4.檢查約束(CheckConstraint)檢查約束對(duì)輸入列或整個(gè)表中的值設(shè)置檢查條件,以限制輸入值,保證數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性。可以對(duì)每個(gè)列設(shè)置符合檢查。1.2約束【例10】添加檢查約束(對(duì)員工表中emp_age年齡加以限定15-50歲之間)ALTER

TABLE

EmployeesADD

CONSTRAINT

CK_Age

CHECK(emp_age

between15and50)GO1.2約束【例11】創(chuàng)建采購(gòu)訂單分錄表其中訂貨數(shù)量必須不小于10。CREATE

TABLE

采購(gòu)訂單分錄表

(分錄號(hào)

INT,采購(gòu)訂單號(hào)

VARCHAR(30),物料代碼

INT,訂貨數(shù)量

FLOAT,單價(jià)

FLOAT,金額

FLOAT,計(jì)量單位

INT,交貨日期

DATETIME,備注

VARCHAR(255),CONSTRAINT

PK_POOrderEntry

PRIMARY

KEY(分錄號(hào),采購(gòu)訂單號(hào))

,CONSTRAINT

FK_FItemID

FOREIGN

KEY(物料代碼)

References

物料表(物料代碼),CONSTRAINT

CK_quantity

CHECK(訂貨數(shù)量>=10))

ON

[PRIMARY]GO注意:對(duì)計(jì)算列不能作除檢查約束外的任何約束。1.2約束【例12】刪除檢查約束(CK_quantity)。ALTER

TABLE

采購(gòu)訂單頭分錄表DROP

CONSTRAINT

CK_quantityGO1.2約束5.默認(rèn)約束(DefaultConstraint)默認(rèn)約束通過(guò)定義列的默認(rèn)值或使用數(shù)據(jù)庫(kù)的默認(rèn)值對(duì)象綁定表的列,來(lái)指定列的默認(rèn)值?!纠?.28】添加默認(rèn)約束(采購(gòu)訂單分錄表中的訂貨數(shù)量默認(rèn)為100)。ALTER

TABLE

采購(gòu)訂單分錄表ADD

CONSTRAINT

DF_FQty

DEFAULT100FOR

訂貨數(shù)量GO1.2約束【例13】添加默認(rèn)約束(如果供應(yīng)商表Supplier中地址不填,默認(rèn)為“地址不詳”)ALTER

TABLE

供應(yīng)商表ADD

CONSTRAINT

DF_FAddress

DEFAULT('地址不詳')

FOR

地址GO【例14】刪除默認(rèn)約束(訂貨數(shù)量默認(rèn)約束)ALTER

TABLE

采購(gòu)訂單分錄表DROP

CONSTRAINT

DF_FQtyGO1.2約束6.列約束和表約束對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),約束又分為列約束(ColumnConstraint)和表約束(TableConstraint)。列約束作為列定義的一部分只作用于此列本身。表約束作為表定義的一部分,可以作用于多個(gè)列。1.2約束【例15】列約束與表約束CREATE

TABLE

采購(gòu)訂單分錄表(分錄號(hào)

INT,采購(gòu)訂單號(hào)

VARCHAR(30),物料代碼

INT,訂貨數(shù)量

FLOAT

check(訂貨數(shù)量>=10),

/*列約束*/單價(jià)

FLOAT,金額

FLOAT,單位

INT,交貨日期

DATETIME,備注

VARCHAR(255),CONSTRAINT

PK_POOrderEntry

PRIMARY

KEY(分錄號(hào),采購(gòu)訂單號(hào)),

/*表約束*/)

ON

[PRIMARY]GO上機(jī)實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)1-1第1題:【定義約束】20分鐘小結(jié)本講小結(jié)1.數(shù)據(jù)庫(kù)完整性1.1完整性1.2約束★實(shí)體完整性、用戶(hù)自定義完整性、參照完整性primarykey約束foreignkey約束unique約束check約束default約束1.數(shù)據(jù)完整性有哪三種類(lèi)型?2.約束有哪幾類(lèi)?THANKS感謝聆聽(tīng)數(shù)據(jù)庫(kù)安全性控制(索引)《大數(shù)據(jù)安全與隱私保護(hù)》【第一章數(shù)據(jù)庫(kù)安全】上講內(nèi)容回顧1.數(shù)據(jù)庫(kù)完整性1.1完整性1.2約束上講內(nèi)容提問(wèn)1.數(shù)據(jù)完整性有哪三種類(lèi)型?2.約束有哪幾類(lèi)?實(shí)體完整性、用戶(hù)自定義完整性、參照完整性primarykey約束foreignkey約束unique約束check約束default約束第1講數(shù)據(jù)庫(kù)安全性控制--索引2.索引2.1索引概述2.2創(chuàng)建索引2.3管理索引★2.索引2

索引2.1索引概述2.2創(chuàng)建索引2.3管理索引2.1索引概述2.1

索引概述在應(yīng)用系統(tǒng)中,尤其在聯(lián)機(jī)事務(wù)處理系統(tǒng)中,對(duì)數(shù)據(jù)查詢(xún)及處理速度已成為衡量應(yīng)用系統(tǒng)成敗的標(biāo)準(zhǔn)。

而采用索引來(lái)加快數(shù)據(jù)處理速度通常是最普遍采用的優(yōu)化方法。2.1

索引概述數(shù)據(jù)庫(kù)中的索引與書(shū)籍中的目錄類(lèi)似。在一本書(shū)中,利用索引可以快速查找所需信息,無(wú)須閱讀整本書(shū)。書(shū)中的目錄是一個(gè)詞語(yǔ)列表,其中注明了包含各個(gè)詞的頁(yè)碼。在數(shù)據(jù)庫(kù)中,索引使數(shù)據(jù)庫(kù)程序無(wú)須對(duì)整個(gè)表進(jìn)行掃描,就可以在其中找到所需數(shù)據(jù)。而數(shù)據(jù)庫(kù)中的索引是一個(gè)表中所包含的值的列表,其中注明了表中包含各個(gè)值的行所在的存儲(chǔ)位置。2.1

索引概述

索引的作用通過(guò)創(chuàng)建唯一索引,可以增強(qiáng)數(shù)據(jù)記錄的唯一性。可以大大加快數(shù)據(jù)檢索速度??梢约铀俦砼c表之間的連接,這一點(diǎn)在實(shí)現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義。在使用ORDERBY和GROUPBY子句中進(jìn)行檢索數(shù)據(jù)時(shí),可以顯著減少查詢(xún)中分組和排序的時(shí)間。使用索引可以在檢索數(shù)據(jù)的過(guò)程中使用優(yōu)化隱藏器,提高系統(tǒng)性能。2.1

索引概述

索引的注意事項(xiàng)不過(guò),索引為性能所帶來(lái)的好處卻是有代價(jià)的。帶索引的表在數(shù)據(jù)庫(kù)中會(huì)占據(jù)更多的空間。另外,為了維護(hù)索引,對(duì)數(shù)據(jù)進(jìn)行插入、更新、刪除操作的命令所花費(fèi)的時(shí)間會(huì)更長(zhǎng)。創(chuàng)建索引所需的工作空間約為數(shù)據(jù)庫(kù)表的1.2倍,在建立索引時(shí),數(shù)據(jù)被復(fù)制以便建立索引。索引建立后,舊的未加索引的表被刪除,創(chuàng)建索引時(shí)使用的硬盤(pán)空間由系統(tǒng)自動(dòng)收回。在設(shè)計(jì)和創(chuàng)建索引時(shí),應(yīng)確保對(duì)性能的提高程度大于在存儲(chǔ)空間和處理資源方面的代價(jià)。2.1

索引概述因創(chuàng)建索引要耗一定的系統(tǒng)性能,因此要考察對(duì)某列創(chuàng)建索引的必要性。定義有主關(guān)鍵字和外部關(guān)鍵字的列需在指定范圍中快速或頻繁查詢(xún)的列需要按排序順序快速或頻繁檢索的列在集合過(guò)程中需要快速或頻繁組合到一起的列這些情況要考慮創(chuàng)建索引2.1

索引概述在查詢(xún)中幾乎不涉及的列很少有唯一值的列由text,ntext或image數(shù)據(jù)類(lèi)型定義的列只有較少行數(shù)的表沒(méi)必要建索引這些情況可不考慮創(chuàng)建索引2.1

索引概述SQLServer根據(jù)存儲(chǔ)索引和數(shù)據(jù)的物理行的方式的不同,索引分為3種類(lèi)型。即聚集索引(CLUSTEREDINDEX)、非聚集索引(NONCLUSTEREDINDEX),以及主XML索引和輔助XML索引。聚集索引非聚集索引2.1

索引概述1.聚集索引聚集索引將數(shù)據(jù)行的鍵值在表內(nèi)排序并存儲(chǔ)對(duì)應(yīng)的數(shù)據(jù)記錄,使得數(shù)據(jù)表物理順序與索引順序一致。當(dāng)以某字段作為關(guān)鍵字建立聚集索引時(shí),表中數(shù)據(jù)以該字段作為排序根據(jù)。因此,一個(gè)表只能建立一個(gè)聚集索引,但該索引可以包含多個(gè)列(組合索引)。2.1

索引概述2.非聚集索引非聚集索引完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu)。數(shù)據(jù)存儲(chǔ)在一個(gè)地方,索引存儲(chǔ)在另一個(gè)地方。非聚集索引中的數(shù)據(jù)排列順序并不是表格中數(shù)據(jù)的排列順序。SQLServer默認(rèn)情況下建立的索引是非聚集索引。一個(gè)表可以擁有多個(gè)非聚集索引,每個(gè)非聚集索引提供訪問(wèn)數(shù)據(jù)的不同排序順序。2.1

索引概述聚集型索引和非聚集型索引的比較關(guān)于非聚集索引非聚簇索引提高的存取速度,但降低了表的更新的速度如果硬盤(pán)和內(nèi)存空間有限,應(yīng)限制非聚簇索引的使用修改一個(gè)表的數(shù)據(jù)時(shí),同時(shí)要維護(hù)索引索引存取速度索引的數(shù)量所需空間聚集索引快一表一個(gè)少非聚集索引慢一表可以多個(gè)多2.1

索引概述建立聚集索引的必要性查詢(xún)命令的回傳結(jié)果是以該字段為排序條件需要回傳局部范圍的大量數(shù)據(jù)表格中某字段內(nèi)容的重復(fù)性比較大要考慮建非聚集索引的情況查詢(xún)所獲數(shù)據(jù)量較少時(shí)某字段中的數(shù)據(jù)的唯一性比較高時(shí)2.2創(chuàng)建索引2.2

創(chuàng)建索引1.利用對(duì)象資源管理器創(chuàng)建索引2.利用T-SQL語(yǔ)句創(chuàng)建索引

2.2

創(chuàng)建索引1.利用對(duì)象資源管理器創(chuàng)建索引2.2

創(chuàng)建索引2.利用T-SQL語(yǔ)句創(chuàng)建索引Create[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameONTABLE(column[ASC|DESC][,…n])[with{ignore_dup_key|drop_existing|sort_in_tempdb}][ONFILEGROUP]參數(shù)說(shuō)明如下:unique:該選項(xiàng)用于通知SQLServer索引中列出的列的值是每行唯一的。index_name:索引名。建議使用了“idx_表名_列名"的這種命名方法。ONtable:這是同索引相關(guān)聯(lián)的表的名稱(chēng)。只能是一個(gè)表的名稱(chēng)。利用T-SQL語(yǔ)句可以創(chuàng)建索引,該命令的基本語(yǔ)法如下:2.2

創(chuàng)建索引2.利用T-SQL語(yǔ)句創(chuàng)建索引【例1】使用CREATEINDEX語(yǔ)句為“學(xué)生表”創(chuàng)建一個(gè)非聚集索引,索引字段為“姓名”,索引名為idx_name。create

index

idx_nameon

學(xué)生表(姓名)2.2

創(chuàng)建索引2.利用T-SQL語(yǔ)句創(chuàng)建索引【例2】根據(jù)“學(xué)生表”的學(xué)號(hào)和姓名列創(chuàng)建索引idx_xhxm。create

index

idx_xhxmon

學(xué)生表(學(xué)號(hào),姓名)2.2

創(chuàng)建索引2.利用T-SQL語(yǔ)句創(chuàng)建索引【例3】根據(jù)“選課表”的學(xué)號(hào)列創(chuàng)建唯一聚集索引。如果輸入重復(fù)鍵值,將忽略該insert或update語(yǔ)句。create

unique

clustered

index

idx_學(xué)號(hào)_unique

on

選課表(學(xué)號(hào))注意:有重復(fù)的鍵值是無(wú)法創(chuàng)建唯一聚集索引的,所以該題可以用(學(xué)號(hào),課程號(hào))兩列作為唯一聚集索引?!羉reate

unique

clustered

index

idx_學(xué)號(hào)_unique

on

選課表(學(xué)號(hào),課程號(hào))2.2

創(chuàng)建索引2.利用T-SQL語(yǔ)句創(chuàng)建索引【例4】根據(jù)“選課表”的學(xué)號(hào)創(chuàng)建索引,使用降序排列,填滿率為60%。create

index

idx_snoon

選課表(學(xué)號(hào)

desc)with

fillfactor

=60上機(jī)實(shí)驗(yàn)任務(wù)一實(shí)驗(yàn)1第一題:【索引管理】1、對(duì)產(chǎn)品名稱(chēng)表上的產(chǎn)品編號(hào)列建立唯一非聚集索引ix_pid(要求用T-sql語(yǔ)句實(shí)現(xiàn))。2、在員工表上的所屬部門(mén)列和性別列建立復(fù)合索引ix_2(要求用sql語(yǔ)句實(shí)現(xiàn))。15分鐘2.3管理索引2.3

管理索引重命名索引刪除索引2.3

管理索引1.重命名索引可以通過(guò)存儲(chǔ)過(guò)程sp_rename可以對(duì)索引名進(jìn)行重命名。【例5】將“學(xué)生表”的索引idx_xhxm重命名為idx_text。exec

sp_rename

'學(xué)生表.idx_xhxm','idx_text'goexec

sp_rename

‘表名.舊名’,‘新名'go2.3

管理索引2.刪除索引【例6】刪除“學(xué)生表”中的idx_name索引。DROP

INDEX

學(xué)生表.idx_name上機(jī)實(shí)驗(yàn)任務(wù)二實(shí)驗(yàn)2第二題:【索引管理】刪除建立在產(chǎn)品名稱(chēng)的索引ix_pid。5分鐘小結(jié)本講小結(jié)2.

索引2.1索引概述2.2創(chuàng)建索引2.3管理索引★測(cè)驗(yàn)小測(cè)驗(yàn)完成頭歌平臺(tái)

小測(cè)驗(yàn)20分鐘THANKS感謝聆聽(tīng)數(shù)據(jù)庫(kù)安全性控制(視圖)《大數(shù)據(jù)安全與隱私保護(hù)》【第一章數(shù)據(jù)庫(kù)安全】1

數(shù)據(jù)庫(kù)完整性1.1完整性1.2約束2索引2.1索引概述2.2創(chuàng)建索引2.3管理索引√√數(shù)據(jù)庫(kù)安全性控制(難點(diǎn))回顧(重點(diǎn))搶答環(huán)節(jié)1.數(shù)據(jù)完整性有哪三種類(lèi)型?2.約束有哪幾類(lèi)?回顧實(shí)體完整性、用戶(hù)自定義完整性、參照完整性primarykey約束foreignkey約束unique約束check約束default約束3.建立索引的關(guān)鍵字?4.索引的填滿率體現(xiàn)的是什么道理?createindex索引名on表名(字段名)withfillfactor=60“月滿則虧,水滿則溢”“謙虛謹(jǐn)慎”3

視圖3.1視圖概述3.2創(chuàng)建視圖3.3管理視圖3.4利用視圖管理數(shù)據(jù)★(重點(diǎn))(難點(diǎn))第1講數(shù)據(jù)庫(kù)安全性控制--視圖3視圖概述案例基于視圖的訪問(wèn)控制皇上問(wèn)話高公公去清點(diǎn)酒窖藏書(shū)閣金庫(kù)……每次問(wèn)話都得重新跑一次皇上問(wèn)話小鄧子小桌子小六子酒窖藏書(shū)閣金庫(kù)…………各有分工,各自負(fù)責(zé)既定部門(mén)查詢(xún)視圖機(jī)制3.1視圖概述案例

解析基于視圖的訪問(wèn)控制視圖的使用1視圖只是定義了一個(gè)查詢(xún),視圖中的數(shù)據(jù)是從基表中獲取,這些數(shù)據(jù)在視圖被引用時(shí)動(dòng)態(tài)的生成。由于視圖基于數(shù)據(jù)庫(kù)中的其他對(duì)象,因此一個(gè)視圖只需占用數(shù)據(jù)字典中保存其定義的空間,而無(wú)需額外的存儲(chǔ)空間,視圖也會(huì)隨著基表的變化而變化。案例中的公公們,都擁有不同的視圖View_小鄧子、View_小桌子、View_小六子,不同的人查看到的內(nèi)容是不同的,這就是利用視圖進(jìn)行數(shù)據(jù)安全訪問(wèn)的好處。3.1視圖概述案例基于視圖的訪問(wèn)控制SELECTa.cno,count(*)AsGold_Num;FROMCountrya,GoldDB

gWHEREa.cno=g.cnoGROUPBYa.cno;視圖的優(yōu)點(diǎn)2比如,要查詢(xún)其他國(guó)家上供金子的次數(shù)。已知國(guó)家表Country,金庫(kù)表GoldDB

。一般寫(xiě)法如下:優(yōu)點(diǎn)1:使用視圖可以隱藏查詢(xún)的復(fù)雜性SELECTcno,Gold_NumFROMview_小六子前提是已創(chuàng)建了基于上面查詢(xún)的視圖view_小六子采取視圖的方式優(yōu)點(diǎn)2:視圖可以加強(qiáng)安全性3.1視圖概述職業(yè)素養(yǎng)勛章請(qǐng)大家結(jié)合生活或者工作中的真實(shí)需求,談?wù)勔晥D的應(yīng)用場(chǎng)景以及其帶來(lái)的好處。銀行業(yè)務(wù)3.1視圖概述

創(chuàng)建視圖1.利用對(duì)象資源管理器創(chuàng)建視圖2.利用T-SQL語(yǔ)句創(chuàng)建視圖

3.23.2

創(chuàng)建視圖-利用對(duì)象資源管理器創(chuàng)建視圖第一步:在SQLServerManagementStudio中創(chuàng)建視圖的方法主要在視圖設(shè)計(jì)器中完成。第二步:添加好各表后,單擊關(guān)閉按鈕關(guān)閉【添加表】對(duì)話框。以后需要用可以在關(guān)系圖窗口的空白處右擊。第三步:在關(guān)系圖窗口中,可以建立表與表之間的聯(lián)系,只需要將相關(guān)聯(lián)的字段拖動(dòng)到要連接的字段上即可。第四步:在每個(gè)表列名前的復(fù)選框選擇,可以設(shè)置視圖需要輸出的字段,在條件窗格里還可以設(shè)置要過(guò)濾的查詢(xún)條件。

創(chuàng)建視圖-利用對(duì)象資源管理器創(chuàng)建視圖3.2第五步:?jiǎn)螕簟緢?zhí)行SQL】執(zhí)行按鈕,運(yùn)行select語(yǔ)句,查看運(yùn)行結(jié)果。第六步:測(cè)試正常后,單擊【保存】,在彈出的對(duì)話框中輸入視圖名稱(chēng),完成視圖的創(chuàng)建。

創(chuàng)建視圖-利用對(duì)象資源管理器創(chuàng)建視圖3.2任務(wù)1:【利用對(duì)象資源管理器創(chuàng)建視圖】5分鐘動(dòng)手練一練可視化方式創(chuàng)建一個(gè)視圖(v_Item_1),用于查看銷(xiāo)售給客戶(hù)為“杭州華為分公司”,且訂單金額大于5000的訂單信息實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)備:請(qǐng)從ftp中下載Company.sql文件,執(zhí)行建庫(kù)建表后,開(kāi)始實(shí)驗(yàn)。利用對(duì)象資源管理器創(chuàng)建視圖3.2(1)創(chuàng)建基于基表的視圖(2)創(chuàng)建基于視圖的視圖(3)創(chuàng)建帶表達(dá)式的視圖(4)創(chuàng)建分組視圖

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2【例1】創(chuàng)建一個(gè)視圖(v_test1),用于查看產(chǎn)品表中的產(chǎn)品編碼和產(chǎn)品名稱(chēng),并修改其字段名為代碼、品名。CREATEVIEWv_test1

(代碼,品名)AS

SELECT產(chǎn)品編碼,產(chǎn)品名稱(chēng)

FROM

產(chǎn)品表(1)創(chuàng)建基于基表的視圖

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2【例2】創(chuàng)建一個(gè)視圖(

v_test2),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”的訂單信息。CREATE

VIEW

v_test_2AS

SELECT銷(xiāo)售主表.*

FROM銷(xiāo)售主表A,客戶(hù)表B WHERE

A.客戶(hù)號(hào)=B.客戶(hù)號(hào) AND

客戶(hù)名稱(chēng)=‘中國(guó)聯(lián)通溫州分公司’(1)創(chuàng)建基于基表的視圖

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2【例3】創(chuàng)建一個(gè)視圖(

v_test3),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”的訂單信息。并用WITHENCRYPTION加密。CREATE

VIEW

v_test3

WITHENCRYPTIONAS

SELECT銷(xiāo)售主表.*

FROM銷(xiāo)售主表A,客戶(hù)表B WHERE

A.客戶(hù)號(hào)=B.客戶(hù)號(hào)

AND

客戶(hù)名稱(chēng)=‘中國(guó)聯(lián)通溫州分公司’(1)創(chuàng)建基于基表的視圖

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2上機(jī)實(shí)驗(yàn)任務(wù)2任務(wù)2-1:【創(chuàng)建基于基表的視圖】10分鐘創(chuàng)建一個(gè)視圖(v_Item_2),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”的訂單信息。CREATE

VIEW

v_test3AS

SELECT

*

FROM

v_test2

WHERE訂貨日期<‘2021-11-1’(2)創(chuàng)建基于視圖的視圖【例4】創(chuàng)建一個(gè)視圖(v_test3

),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”,且訂貨日期早于2021-11-1的訂單信息。(要求基于視圖v_test2創(chuàng)建視圖)v_test2

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2上機(jī)實(shí)驗(yàn)任務(wù)2任務(wù)2-2:【創(chuàng)建基于視圖的視圖】5分鐘創(chuàng)建一個(gè)視圖(v_Item_3),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”,且訂貨日期早于2021-11-1的訂單信息。(要求基于視圖v_Item_2創(chuàng)建視圖)(3)創(chuàng)建帶表達(dá)式的視圖【例5】創(chuàng)建一個(gè)視圖(v_test4),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”,且訂單金額大于12000元的訂單信息。(要求基于視圖v_test2創(chuàng)建視圖。同時(shí):加密且保證對(duì)該視圖的更新都要符合訂單金額大于12000這個(gè)條件。)WithencryptionWithcheckoption

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2上機(jī)實(shí)驗(yàn)任務(wù)2任務(wù)2-3:【創(chuàng)建帶表達(dá)式的視圖】5分鐘創(chuàng)建一個(gè)視圖(v_Item_4),用于查看銷(xiāo)售給客戶(hù)為“中國(guó)聯(lián)通溫州分公司”,且訂單金額大于12000元的訂單信息。(要求基于視圖v_Item_2創(chuàng)建視圖,加密且保證對(duì)該視圖的更新都要符合訂單金額大于12000這個(gè)條件。)CREATE

VIEW

v_test5AS

SELECT業(yè)務(wù)員編號(hào),count(*) FROM銷(xiāo)售主表 Groupby業(yè)務(wù)員編號(hào)(4)創(chuàng)建分組視圖【例6】創(chuàng)建一個(gè)視圖v_test5,按業(yè)務(wù)員進(jìn)行分組統(tǒng)計(jì),顯示各業(yè)務(wù)員對(duì)應(yīng)的銷(xiāo)售訂單數(shù)量。

創(chuàng)建視圖-利用T-SQL語(yǔ)句創(chuàng)建視圖3.2上機(jī)實(shí)驗(yàn)任務(wù)2任務(wù)2-4:【創(chuàng)建分組視圖】5分鐘創(chuàng)建一個(gè)視圖v_Item_5,按業(yè)務(wù)員進(jìn)行分組統(tǒng)計(jì),顯示各業(yè)務(wù)員對(duì)應(yīng)的銷(xiāo)售訂單數(shù)量。

創(chuàng)建視圖利用T-SQL語(yǔ)句創(chuàng)建視圖CREATEVIEW

view_name

[(column[,...n])]

[WITHENCRYPTION]

AS

SELECT_statement

[WITHCHECKOPTION]參數(shù)說(shuō)明如下:view_name:視圖名column:視圖中所使用的列名。WITHENCRYPTION:加密視圖。WITHCHECKOPTION:指出在視圖上所進(jìn)行的修改都要符合查詢(xún)語(yǔ)句所指定的限制條件,這樣可以確保數(shù)據(jù)修改后仍可通過(guò)視圖看到修改的數(shù)據(jù)。小結(jié)

創(chuàng)建視圖利用T-SQL語(yǔ)句創(chuàng)建視圖參數(shù)說(shuō)明如下:ASSELECT_statement:用來(lái)創(chuàng)建視圖的SELECT語(yǔ)句。但對(duì)SELECT語(yǔ)句有以下的限制:①定義視圖的用戶(hù)必須對(duì)所參照的表或視圖有查詢(xún)權(quán)限,即可執(zhí)行SELECT語(yǔ)句。

②不能使用COMPUTE或COMPUTEBY子句。(2012版本已經(jīng)不用)

③不能使用ORDERBY子句。

④不能使用INTO子句。

⑤不能在臨時(shí)表或表變量上創(chuàng)建視圖。小結(jié)

3.3管理視圖3.3

管理視圖查看視圖修改視圖更名視圖刪除視圖

管理視圖查看視圖除了利用對(duì)象管理器查看視圖定義外,SQLServer還提供系統(tǒng)存儲(chǔ)過(guò)程查看視圖定義。sp_help

用于返回視圖的特征信息。sp_helptext

查看視圖的定義文本。sp_depends查看視圖對(duì)表的依賴(lài)關(guān)系和引用的字段。3.3

管理視圖查看視圖sp_help【例7】查找S_G視圖的詳細(xì)信息。sp_help

S_GGO3.3

管理視圖查看視圖sp_helptext【例8】查找S_G視圖的定義文本。sp_helptext

S_GGO3.3

管理視圖查看視圖sp_depends【例9】查找S_G視圖的依賴(lài)關(guān)系和引用的字段。sp_depends

S_GGO3.3

管理視圖2.修改視圖【例10】將v_student視圖修改為只包含學(xué)生學(xué)號(hào)、姓名。alter

view

v_studentasselect

學(xué)號(hào),姓名

from

學(xué)生表3.3

管理視圖2.修改視圖【例11】將視圖(v_Item_2)修改,用于查看銷(xiāo)售給客戶(hù)為“杭州華為分公司”的訂單信息。ALTER

VIEW

v_test_2AS

SELECT銷(xiāo)售主表.*

FROM銷(xiāo)售主表A,客戶(hù)表B WHERE

A.客戶(hù)號(hào)=B.客戶(hù)號(hào) AND

客戶(hù)名稱(chēng)=‘杭州華為分公司’3.3

管理視圖3.視圖更名利用系統(tǒng)提供的存儲(chǔ)過(guò)程sp_rename可以對(duì)視圖進(jìn)行重命名?!纠?2】將V_1視圖的名稱(chēng)修改為V_2。sp_rename

‘V_1','

V_2','VIEW'GO3.3

管理視圖4.刪除視圖【例13】刪除視圖v_studentDROP

VIEW

v_student3.3上機(jī)實(shí)驗(yàn)任務(wù)3任務(wù)3:【管理視圖】10分鐘任務(wù)3-1【查看視圖】任務(wù)3-2【修改視圖】任務(wù)3-3【視圖更名】任務(wù)3-4【刪除視圖】

3.4利用視圖管理數(shù)據(jù)3.4

利用視圖管理數(shù)據(jù)在創(chuàng)建視圖之后,可以通過(guò)視圖來(lái)對(duì)基表的數(shù)據(jù)進(jìn)行管理。但是無(wú)論在什么時(shí)候?qū)σ晥D的數(shù)據(jù)進(jìn)行管理,實(shí)際上都是在對(duì)視圖對(duì)應(yīng)的數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行管理。利用視圖查詢(xún)數(shù)據(jù)利用視圖插入數(shù)據(jù)利用視圖更新數(shù)據(jù)利用視圖刪除數(shù)據(jù)

利用視圖管理數(shù)據(jù)利用視圖查詢(xún)數(shù)據(jù)利用T-SQL語(yǔ)言查詢(xún)視圖數(shù)據(jù)?!纠?4】查詢(xún)學(xué)號(hào)為“2011101”學(xué)生的課程成績(jī)。(從v_Test視圖中查找)select

*from

v_Testwhere

學(xué)號(hào)=

'2011101'

3.4上機(jī)實(shí)驗(yàn)任務(wù)4任務(wù)4-1:【查詢(xún)視圖】5分鐘基于v_product_1視圖,查詢(xún)成本低于在1000產(chǎn)品的產(chǎn)品編號(hào)、名稱(chēng)和價(jià)格。

利用視圖管理數(shù)據(jù)2.利用視圖插入數(shù)據(jù)使用insert語(yǔ)句通過(guò)視圖向基本表插入數(shù)據(jù)。由于視圖不一定包括表中的所有字段,所以在插入記錄時(shí)可能會(huì)遇到問(wèn)題。視圖中那些沒(méi)有出現(xiàn)的字段無(wú)法顯式插入數(shù)據(jù),假如這些字段不接受系統(tǒng)指派的null值,那么插入操作將失敗。3.4

利用視圖管理數(shù)據(jù)2.利用視圖插入數(shù)據(jù)【例15】向視圖v_student中插入一個(gè)新的學(xué)生記錄,學(xué)號(hào)為2019101,姓名為王明,年齡為20。insert

into

v_studentvalues(2019101,'王明',20)因?yàn)関_student視圖沒(méi)有年齡列。insert

into

v_studentvalues(2019101,'王明')√3.4

利用視圖管理數(shù)據(jù)2.利用視圖插入數(shù)據(jù)【例16】向視圖stu_is_c1中插入一個(gè)新的學(xué)生記錄,學(xué)號(hào)為2019127,姓名為王明,年齡為20。insert

into

stu_is_c1Values('2019127','王明',20)3.4

利用視圖管理數(shù)據(jù)2.利用視圖插入數(shù)據(jù)【例17】向視圖stu_sc_grade中插入一個(gè)新的學(xué)生記錄,學(xué)號(hào)為2019127,姓名為王明,成績(jī)?yōu)?0。insert

into

stu_sc_gradeValues('2019127','王明',60)因?yàn)樵撘晥D成績(jī)要求在90分以上,而且是人工智能學(xué)院,各種條件限制。3.4上機(jī)實(shí)驗(yàn)任務(wù)4任務(wù)4-2:【利用視圖插入數(shù)據(jù)】8分鐘向v_product_1中插入一條產(chǎn)品記錄('P0014','數(shù)碼相機(jī)',4500)

利用視圖管理數(shù)據(jù)3.利用視圖更新數(shù)據(jù)使用UPDATE語(yǔ)句可以通過(guò)視圖修改基本表的數(shù)據(jù)?!纠?8】將視圖v_student中學(xué)號(hào)為‘2019101’的學(xué)生姓名改為張山。update

v_studentset

姓名='張山'where

學(xué)號(hào)=2019101update

學(xué)生表set

姓名='張山'where

學(xué)號(hào)=2019101等價(jià)于:3.4上機(jī)實(shí)驗(yàn)任務(wù)4任務(wù)4-3:【利用視圖更新數(shù)據(jù)】8分鐘將產(chǎn)品編號(hào)為’P0014’的成本改為7800(兩種方式完成更新)

利用視圖管理數(shù)據(jù)4.利用視圖刪除數(shù)據(jù)使用DELETE語(yǔ)句可以通過(guò)視圖刪除基本表的數(shù)據(jù)。但對(duì)于依賴(lài)于多個(gè)基本表的視圖,不能使用DELETE語(yǔ)句?!纠?9】刪除視圖stu_is_c1中學(xué)號(hào)為‘2019127’的學(xué)生記錄。delete

from

學(xué)生表where

學(xué)號(hào)='2019127'delete

from

stu_is_c1where

學(xué)號(hào)='2019127'3.4上機(jī)實(shí)驗(yàn)任務(wù)4任務(wù)4-4:【利用視圖刪除數(shù)據(jù)】8分鐘刪除產(chǎn)品編號(hào)為’P0014’的產(chǎn)品小結(jié)本講小結(jié)4.5

視圖4.5.1視圖概述4.5.2創(chuàng)建視圖4.5.3管理視圖4.5.4利用視圖管理數(shù)據(jù)★小結(jié)

視圖概述視圖是一種數(shù)據(jù)庫(kù)對(duì)象,是從一個(gè)或者多個(gè)數(shù)據(jù)表或視圖中導(dǎo)出的虛表,視圖的結(jié)構(gòu)和數(shù)據(jù)是對(duì)數(shù)據(jù)表進(jìn)行查詢(xún)的結(jié)果;視圖的特點(diǎn):1.視圖能夠簡(jiǎn)化用戶(hù)的操作,從而簡(jiǎn)化查詢(xún)語(yǔ)句;2.視圖使用戶(hù)能以多種角度看待同一數(shù)據(jù),增加可讀性;3.視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性;4.視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù);5.適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢(xún)。小結(jié)

視圖

使用視圖的注意事項(xiàng):只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建視圖;視圖的命名必須遵循標(biāo)識(shí)符命名規(guī)則,不可與表同名;如果視圖中某一列是函數(shù)、數(shù)學(xué)表達(dá)式、常量或者來(lái)自多個(gè)表的列名相同,則必須為列定義名稱(chēng)。當(dāng)視圖引用基表或視圖被刪除,該視圖也不能再被使用。不能在視圖上創(chuàng)建全文索引,不能在規(guī)則、默認(rèn)的定義中引用視圖。一個(gè)視圖最多可以引用1024個(gè)列。視圖最多可以嵌套32層。

創(chuàng)建視圖利用T-SQL語(yǔ)句創(chuàng)建視圖CREATEVIEW[schema_name.]view_name

[(column[,...n])]

[WITHENCRYPTION]

ASSELECT_statement

[WITHCHECKOPTION]參數(shù)說(shuō)明如下:schema_name:視圖所屬架構(gòu)名view_name:視圖名column:視圖中所使用的列名。WITHENCRYPTION:加密視圖。WITHCHECKOPTION:指出在視圖上所進(jìn)行的修改都要符合查詢(xún)語(yǔ)句所指定的限制條件,這樣可以確保數(shù)據(jù)修改后仍可通過(guò)視圖看到修改的數(shù)據(jù)。小結(jié)

創(chuàng)建視圖利用T-SQL語(yǔ)句創(chuàng)建視圖參數(shù)說(shuō)明如下:ASSELECT_statement:用來(lái)創(chuàng)建視圖的SELECT語(yǔ)句。但對(duì)SELECT語(yǔ)句有以下的限制:①定義視圖的用戶(hù)必須對(duì)所參照的表或視圖有查詢(xún)權(quán)限,即可執(zhí)行SELECT語(yǔ)句。

②不能使用COMPUTE或COMPUTEBY子句。(2012版本已經(jīng)不用)

③不能使用ORDERBY子句。

④不能使用INTO子句。

⑤不能在臨時(shí)表或表變量上創(chuàng)建視圖。小結(jié)頭歌在線平臺(tái)作業(yè)下達(dá)THANKS感謝聆聽(tīng)數(shù)據(jù)庫(kù)安全性控制(數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo))《大數(shù)據(jù)安全與隱私保護(hù)》1.

數(shù)據(jù)安全訪問(wèn)控制1.1基于視圖的訪問(wèn)控制1.2數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)1.3創(chuàng)建視圖1.4管理視圖1.5利用視圖管理數(shù)據(jù)★數(shù)據(jù)庫(kù)安全性控制1.2數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)

以某國(guó)銀行系統(tǒng)消費(fèi)數(shù)據(jù)為例,有一天,一個(gè)用戶(hù)接到銀行客服的電話,直接開(kāi)門(mén)見(jiàn)山,向用戶(hù)推出本月信用卡額度臨時(shí)調(diào)整業(yè)務(wù),可以調(diào)整到1萬(wàn)的額度,有效期限本月,并提供很低的利息進(jìn)行下個(gè)月的分期還款,問(wèn)是否選擇調(diào)整。該用戶(hù)目前的信用額度為5000元,月初時(shí)已經(jīng)用了4000元的額度,本月還剩20多天,而日常大部分的生活消費(fèi)都是用信用卡支付的,并且往往都是月底進(jìn)行大部分生活支出,而該用戶(hù)的工資水平并不高,如果不提供分期還款的話,提高額度也同樣會(huì)帶來(lái)下個(gè)月全額還款的壓力。很顯然該用戶(hù)調(diào)整額度和分期付款的需求是非常迫切的。那么為什么是調(diào)整到1萬(wàn)的額度而且有效期限本月,并提供很低的利息進(jìn)行下個(gè)月的分期還款呢?這背后的推理邏輯和營(yíng)銷(xiāo)策略,為何會(huì)如此精準(zhǔn)呢?【數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】1.2案例解析生活中的推理現(xiàn)象:當(dāng)看到天空烏云密布、燕子低飛、螞蟻搬家等現(xiàn)象時(shí),我們會(huì)得到一個(gè)推理判斷:天要下雨了。數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1從用戶(hù)第一天辦理信用卡開(kāi)始,用戶(hù)的數(shù)據(jù)就進(jìn)入銀行數(shù)據(jù)庫(kù),其中的數(shù)據(jù)大致包含了:姓名、所在城市、區(qū)域、年齡、性別、身份證號(hào)、電話號(hào)、公司、工齡、年薪、信用額度、銀行卡號(hào),消費(fèi)記錄、接待客服等大量的數(shù)據(jù)。解析1:用戶(hù)數(shù)據(jù)積累【

數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】1.2數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1“物以類(lèi)聚,人以群分”解析2:用戶(hù)數(shù)據(jù)挖掘與模型建立以本案例的用戶(hù)為例,特征是:青年人,剛剛參加工作,工資偏低、日常生活消費(fèi)為主等,同時(shí)講究生活品質(zhì),定期購(gòu)買(mǎi)高端商品,信用額度經(jīng)常不夠用。于是這樣的用戶(hù)就極有可能成為信用額度提升、推廣分期付款的營(yíng)銷(xiāo)對(duì)象。【

數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】1.2案例解析數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1RFM模型解析3:制訂營(yíng)銷(xiāo)方案(1)最近一次消費(fèi)(Recency):最近消費(fèi),如果面對(duì)用戶(hù)一個(gè)月的消費(fèi),那么一周作為一個(gè)分段,分為4段。(2)消費(fèi)頻率(Frenquency):消費(fèi)頻率從1次到10次,那么每2次作為一個(gè)分段,分為5段。(3)消費(fèi)金額(Monetary):消費(fèi)金額從1元到5000元,那么1000元就是一個(gè)等級(jí)點(diǎn)。分為5段。按照上面的3個(gè)維度,可以把顧客分成4*5*5=100類(lèi),對(duì)其進(jìn)行數(shù)據(jù)分析,然后制定出營(yíng)銷(xiāo)策略。對(duì)于那些近期消費(fèi)用戶(hù),頻率較高且金額較大的,一定是高端的優(yōu)質(zhì)用戶(hù),區(qū)分出用戶(hù)后,排好優(yōu)先級(jí)進(jìn)行營(yíng)銷(xiāo)?!?/p>

數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】1.2案例解析數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1解析4:營(yíng)銷(xiāo)執(zhí)行案例解析細(xì)分出精準(zhǔn)用戶(hù),量身打造的產(chǎn)品,接著就是按照用戶(hù)名單的優(yōu)先級(jí)別進(jìn)行多種方式的營(yíng)銷(xiāo)執(zhí)行。比如對(duì)于RFM模型中高端用戶(hù),采用電話營(yíng)銷(xiāo),提高轉(zhuǎn)化率。各種不同的信用卡產(chǎn)品,究竟是否會(huì)被持續(xù)使用?有無(wú)可能提供更貼近用戶(hù)習(xí)慣,又能充分利用資源的產(chǎn)品?現(xiàn)有的聚類(lèi)方式是否合理?RFM模型分段是否合理?都需要進(jìn)行用戶(hù)行為的后期數(shù)據(jù)跟蹤進(jìn)行判斷優(yōu)化。解析5:效果評(píng)估與模型優(yōu)化根據(jù)不同渠道影響的用戶(hù)消費(fèi)數(shù)據(jù),判斷各種營(yíng)銷(xiāo)手段的有效性,譬如RFM模型的高端用戶(hù),采用A/B測(cè)試方式,是發(fā)短信的效率高,還是電話營(yíng)銷(xiāo)的效率高?【

數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】1.2數(shù)據(jù)導(dǎo)入★★數(shù)據(jù)去重與異常數(shù)據(jù)處理數(shù)據(jù)預(yù)處理1實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)備--Frenquency★★數(shù)據(jù)可視化--分布直方圖數(shù)據(jù)分析2實(shí)現(xiàn)RecencyFrenquencyMonetary模型定義--RFM★★R、F、M的均值R、F、M模型3計(jì)算用于劃分客戶(hù)的闕值,R、F、M的均值(*通過(guò)分布直方圖可以發(fā)現(xiàn)該份數(shù)據(jù)不適合用中位數(shù)來(lái)分層,因此這里用均值做分層)不同類(lèi)型的客戶(hù)消費(fèi)份額實(shí)現(xiàn)利用最近交易間隔,交易金額進(jìn)行細(xì)分★R、F、M模型3實(shí)現(xiàn)素養(yǎng)勛章請(qǐng)大家結(jié)合生活或者工作中的真實(shí)需求,談?wù)勆钪袛?shù)據(jù)推理帶來(lái)的好處與安全風(fēng)險(xiǎn)。數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)THANKS感謝聆聽(tīng)《大數(shù)據(jù)安全與隱私保護(hù)》主講老師:翁正秋【第一章數(shù)據(jù)庫(kù)安全】本章要點(diǎn)【第一章數(shù)據(jù)庫(kù)安全】目的與要求:了解數(shù)據(jù)庫(kù)安全涉及的范疇,包括數(shù)據(jù)庫(kù)安全性控制、數(shù)據(jù)庫(kù)脫敏、數(shù)據(jù)庫(kù)漏洞掃描、數(shù)據(jù)庫(kù)防火墻等內(nèi)容;掌握數(shù)據(jù)庫(kù)安全控制的常用方法與技術(shù)。

重點(diǎn)與難點(diǎn):數(shù)據(jù)庫(kù)安全性控制(重點(diǎn))數(shù)據(jù)庫(kù)脫敏(重難點(diǎn))數(shù)據(jù)庫(kù)漏洞掃描(重難點(diǎn))數(shù)據(jù)庫(kù)防火墻(重點(diǎn))本章要點(diǎn)

1.1案例1.2數(shù)據(jù)庫(kù)安全性控制1.3數(shù)據(jù)庫(kù)脫敏1.4數(shù)據(jù)庫(kù)漏洞掃描1.5數(shù)據(jù)庫(kù)防火墻【第一章數(shù)據(jù)庫(kù)安全】案例【

案例1:基于視圖的訪問(wèn)控制】通篇案例導(dǎo)入:X國(guó)案例【

案例1:基于視圖的訪問(wèn)控制】案例解析假如把案例中的系統(tǒng)看成一個(gè)大型的數(shù)據(jù)庫(kù),那么案例中的故事我們可以用數(shù)據(jù)庫(kù)中的視圖機(jī)制更好地去理解。視圖的使用1視圖只是定義了一個(gè)查詢(xún),視圖中的數(shù)據(jù)是從基表中獲取,這些數(shù)據(jù)在視圖被引用時(shí)動(dòng)態(tài)的生成。由于視圖基于數(shù)據(jù)庫(kù)中的其他對(duì)象,因此一個(gè)視圖只需占用數(shù)據(jù)字典中保存其定義的空間,而無(wú)需額外的存儲(chǔ)空間,視圖也會(huì)隨著基表的變化而變化。案例中的大臣BCD,都擁有不同的視圖View_B、View_C、View_D,不同的大臣查看到的內(nèi)容是不同的,這就是利用視圖進(jìn)行數(shù)據(jù)安全訪問(wèn)的好處。SELECTa.dno,count(*)AsCreditCard_Num;FROMUsera,CreditCardcWHEREa.dno=c.dnoGROUPBYa.dno;案例【

案例1:基于視圖的訪問(wèn)控制】案例解析視圖的優(yōu)點(diǎn)2比如,要查詢(xún)用戶(hù)在銀行中的信用卡數(shù)量,已知用戶(hù)表User,信用卡表CreditCard。一般寫(xiě)法如下:優(yōu)點(diǎn)1:使用視圖可以隱藏查詢(xún)的復(fù)雜性SELECTdname,CreditCard_NumFROMmy_view通過(guò)my_view能夠?qū)?fù)雜的查詢(xún)簡(jiǎn)化成簡(jiǎn)單的查詢(xún)語(yǔ)句,讓終端用戶(hù)或者應(yīng)用程序使用查詢(xún)非常方便。前提是已創(chuàng)建了基于上面查詢(xún)的視圖my_view采取視圖的方式如果用下面的語(yǔ)句對(duì)大臣C進(jìn)行查看select權(quán)限的授權(quán):GRANTselectONCreditCardTO大臣C;案例【

案例1:基于視圖的訪問(wèn)控制】案例解析視圖的優(yōu)點(diǎn)2假設(shè)國(guó)王只想要用戶(hù)大臣C查看CreditCard表中的用戶(hù)姓名UName和信用卡號(hào)CardNo兩個(gè)列。優(yōu)點(diǎn)2:視圖可以加強(qiáng)安全性CREATEVIEWC_CreditCardASSELECTUName,CardNoFROMCreditCard;GRANTselectONC_CreditCardTO大臣C;只看到兩列大臣C將會(huì)看到CreditCard表的全部?jī)?nèi)容假設(shè)想要每個(gè)人都可以查詢(xún)CreditCard表,但是只能看到用戶(hù)自己的記錄只看到自己的CREATEVIEWmy_CreditCardASSELECT*FROMCreditCardWHEREUName=USER;GRANTselectONmy_CreditCardTOpublic;案例【

案例2:數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】案例描述:以X國(guó)銀行系統(tǒng)消費(fèi)數(shù)據(jù)為例,有一天,一個(gè)用戶(hù)接到銀行客服的電話,直接開(kāi)門(mén)見(jiàn)山,向用戶(hù)推出本月信用卡額度臨時(shí)調(diào)整業(yè)務(wù),可以調(diào)整到1萬(wàn)的額度,有效期限本月,并提供很低的利息進(jìn)行下個(gè)月的分期還款,問(wèn)是否選擇調(diào)整。該用戶(hù)目前的信用額度為5000元,月初時(shí)已經(jīng)用了4000元的額度,本月還剩20多天,而日常大部分的生活消費(fèi)都是用信用卡支付的,并且往往都是月底進(jìn)行大部分生活支出,而該用戶(hù)的工資水平并不高,如果不提供分期還款的話,提高額度也同樣會(huì)帶來(lái)下個(gè)月全額還款的壓力。很顯然該用戶(hù)調(diào)整額度的需求是非常迫切的。那么為什么是調(diào)整到1萬(wàn)的額度而且有效期限本月,并提供很低的利息進(jìn)行下個(gè)月的分期還款呢?這背后的推理邏輯和營(yíng)銷(xiāo)策略,為何會(huì)如此精準(zhǔn)呢?案例【

案例2:數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】案例解析生活中的推理現(xiàn)象:當(dāng)看到天空烏云密布、燕子低飛、螞蟻搬家等現(xiàn)象時(shí),我們會(huì)得到一個(gè)推理判斷:天要下雨了。數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1從用戶(hù)第一天辦理信用卡開(kāi)始,用戶(hù)的數(shù)據(jù)就進(jìn)入銀行數(shù)據(jù)庫(kù),其中的數(shù)據(jù)大致包含了:姓名、所在城市、區(qū)域、年齡、性別、身份證號(hào)、電話號(hào)、公司、工齡、年薪、信用額度、銀行卡號(hào),消費(fèi)記錄、接待客服等大量的數(shù)據(jù)。解析1:用戶(hù)數(shù)據(jù)積累案例【

案例2:數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1“物以類(lèi)聚,人以群分”解析2:用戶(hù)數(shù)據(jù)挖掘與模型建立案例解析以本案例的用戶(hù)為例,特征是:青年人,剛剛參加工作,工資偏低、日常生活消費(fèi)為主等,同時(shí)講究生活品質(zhì),定期購(gòu)買(mǎi)高端商品,信用額度經(jīng)常不夠用。于是這樣的用戶(hù)就極有可能成為信用額度提升、推廣分期付款的營(yíng)銷(xiāo)對(duì)象。案例【

案例2:數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1RFM模型解析3:制訂營(yíng)銷(xiāo)方案案例解析(1)最近一次消費(fèi)(Recency):最近消費(fèi),如果面對(duì)用戶(hù)一個(gè)月的消費(fèi),那么一周作為一個(gè)分段,分為4段。(2)消費(fèi)頻率(Frenquency):消費(fèi)頻率從1次到10次,那么每2次作為一個(gè)分段,分為5段。(3)消費(fèi)金額(Monetary):消費(fèi)金額從1元到5000元,那么1000元就是一個(gè)等級(jí)點(diǎn)。分為5段。按照上面的3個(gè)維度,可以把顧客分成4*5*5=100類(lèi),對(duì)其進(jìn)行數(shù)據(jù)分析,然后制定出營(yíng)銷(xiāo)策略。對(duì)于那些近期消費(fèi)用戶(hù),頻率較高且金額較大的,一定是高端的優(yōu)質(zhì)用戶(hù),區(qū)分出用戶(hù)后,排好優(yōu)先級(jí)進(jìn)行營(yíng)銷(xiāo)。案例【

案例2:數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】數(shù)據(jù)庫(kù)推理與營(yíng)銷(xiāo)1解析4:營(yíng)銷(xiāo)執(zhí)行案例解析細(xì)分出精準(zhǔn)用戶(hù),量身打造的產(chǎn)品,接著就是按照用戶(hù)名單的優(yōu)先級(jí)別進(jìn)行多種方式的營(yíng)銷(xiāo)執(zhí)行。比如對(duì)于RFM模型中高端用戶(hù),采用電話營(yíng)銷(xiāo),提高轉(zhuǎn)化率。各種不同的信用卡產(chǎn)品,究竟是否會(huì)被持續(xù)使用?有無(wú)可能提供更貼近用戶(hù)習(xí)慣,又能充分利用資源的產(chǎn)品?現(xiàn)有的聚類(lèi)方式是否合理?RFM模型分段是否合理?都需要進(jìn)行用戶(hù)行為的后期數(shù)據(jù)跟蹤進(jìn)行判斷優(yōu)化。解析5:效果評(píng)估與模型優(yōu)化根據(jù)不同渠道影響的用戶(hù)消費(fèi)數(shù)據(jù),判斷各種營(yíng)銷(xiāo)手段的有效性,譬如RFM模型的高端用戶(hù),采用A/B測(cè)試方式,是發(fā)短信的效率高,還是電話營(yíng)銷(xiāo)的效率高?案例【

案例2:數(shù)據(jù)庫(kù)數(shù)據(jù)推理與數(shù)據(jù)營(yíng)銷(xiāo)】數(shù)據(jù)庫(kù)安全中的推理問(wèn)題2案例解析一個(gè)數(shù)據(jù)庫(kù)用戶(hù)可以通過(guò)一條合法的數(shù)據(jù)庫(kù)訪問(wèn)命令獲取數(shù)據(jù)庫(kù)中的低密級(jí)數(shù)據(jù),然后再通過(guò)數(shù)據(jù)庫(kù)推理來(lái)推斷出高敏感性的數(shù)據(jù)庫(kù)信息,這就是存在于數(shù)據(jù)庫(kù)系統(tǒng)中的隱蔽通道,即數(shù)據(jù)庫(kù)推理通道。數(shù)據(jù)庫(kù)安全中的推理問(wèn)題是用戶(hù)利用數(shù)據(jù)之間的相互聯(lián)系竊取其不能直接訪問(wèn)的數(shù)據(jù),從而造成敏感數(shù)據(jù)泄露的一種安全問(wèn)題。知識(shí)點(diǎn)【安全性控制】【第一章數(shù)據(jù)庫(kù)安全】安全性控制就是用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)各種安全策略的功能集合,通過(guò)這些安全機(jī)制來(lái)構(gòu)建安全模型,從而實(shí)現(xiàn)確保數(shù)據(jù)庫(kù)系統(tǒng)安全的目的。知識(shí)點(diǎn)【用戶(hù)標(biāo)識(shí)與身份鑒別】【第一章數(shù)據(jù)庫(kù)安全】用戶(hù)標(biāo)識(shí)和身份鑒別的目的是保證只有合法的用戶(hù)才能存取數(shù)據(jù)庫(kù)資源。最簡(jiǎn)單的方法可以通過(guò)用戶(hù)ID和密碼進(jìn)行標(biāo)識(shí)。作為用戶(hù)的身份證明要求保證標(biāo)識(shí)的唯一性,每位用戶(hù)通過(guò)這個(gè)唯一標(biāo)志才能進(jìn)入系統(tǒng)。通過(guò)用戶(hù)ID和密碼的方式雖然簡(jiǎn)單易行,但是容易被他人竊取。身份鑒別用戶(hù)標(biāo)識(shí)身份鑒別是指系統(tǒng)對(duì)進(jìn)入系統(tǒng)的每個(gè)用戶(hù)身份進(jìn)行鑒別,用于確保用戶(hù)身份的合法性。通行字認(rèn)證數(shù)字證書(shū)認(rèn)證智能卡認(rèn)證個(gè)人特征識(shí)別通行字也稱(chēng)為“口令”或“密碼”。比較常見(jiàn)的有最小長(zhǎng)度限制、次數(shù)限定、選擇字符、有效期、雙通行字和封鎖用戶(hù)系統(tǒng)等數(shù)字證書(shū)是證書(shū)認(rèn)證中心頒發(fā)并進(jìn)行數(shù)字簽名的數(shù)字憑證,它提供了實(shí)體身份的鑒別與認(rèn)證、信息完整性驗(yàn)證、機(jī)密性和不可否認(rèn)性等安全服務(wù)。智能卡(如有源卡、IC卡或Smart卡等)可以用來(lái)驗(yàn)證個(gè)人身份,典型智能卡主要由微處理器、存儲(chǔ)器、輸入輸出接口、安全邏輯及運(yùn)算處理器等組成。通過(guò)判斷被授權(quán)用戶(hù)的個(gè)人特征來(lái)進(jìn)行身份識(shí)別是一種可信度更高的驗(yàn)證方法,個(gè)人特征識(shí)別歸功于生物統(tǒng)計(jì)學(xué)的研究成果,即利用個(gè)人具有人體唯一的、可靠的、穩(wěn)定的生物特征(指紋、虹膜、臉部、掌紋等)來(lái)實(shí)現(xiàn)。知識(shí)點(diǎn)【用戶(hù)標(biāo)識(shí)與身份鑒別】【第一章數(shù)據(jù)庫(kù)安全】身份鑒別【例1-1】以O(shè)racle數(shù)據(jù)庫(kù)為例,Oracle數(shù)據(jù)庫(kù)提供了兩種鑒別方法。為了防止非授權(quán)用戶(hù)使用數(shù)據(jù)庫(kù),Oracle數(shù)據(jù)庫(kù)提供了兩種鑒別方法:操作系統(tǒng)鑒別和Oracle數(shù)據(jù)庫(kù)鑒別。①操作系統(tǒng)鑒別:Oracle可使用操作系統(tǒng)所維護(hù)的信息來(lái)鑒別用戶(hù)。由操作系統(tǒng)鑒定用戶(hù)具有以下優(yōu)點(diǎn):用戶(hù)可以更方便地鏈接到Oracle數(shù)據(jù)庫(kù),而不需要指定的用戶(hù)名和口令;對(duì)用戶(hù)授權(quán)的控制集中在操作系統(tǒng),Oracle不需要存儲(chǔ)和管理用戶(hù)口令。那么同時(shí)也帶來(lái)了以下安全風(fēng)險(xiǎn):一旦攻擊者控制并訪問(wèn)到操作系統(tǒng),就意味著可以完全操控?cái)?shù)據(jù)庫(kù),那么數(shù)據(jù)庫(kù)將面臨嚴(yán)重的安全威脅;操作系統(tǒng)級(jí)別的訪問(wèn),不利于多用戶(hù)在線訪問(wèn)數(shù)據(jù)庫(kù),同時(shí)也不利于用戶(hù)權(quán)限的控制。②Oracle數(shù)據(jù)庫(kù)鑒別:Oracle使用存儲(chǔ)在數(shù)據(jù)庫(kù)中的信息來(lái)對(duì)試圖連接到數(shù)據(jù)庫(kù)的用戶(hù)進(jìn)行鑒定。用戶(hù)申請(qǐng)與數(shù)據(jù)庫(kù)建立連接時(shí),首先要輸入用戶(hù)名,系統(tǒng)需要確認(rèn)用戶(hù)是否是合法用戶(hù);如果是合法用戶(hù),則繼續(xù)要求用戶(hù)輸入口令密碼。同時(shí),為了安全起見(jiàn),用戶(hù)在終端所輸入的口令默認(rèn)是不顯示的。通過(guò)口令的核對(duì),數(shù)據(jù)庫(kù)系統(tǒng)就可以進(jìn)一步的核實(shí)用戶(hù)的身份。知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】訪問(wèn)控制:其目的是確保用戶(hù)對(duì)數(shù)據(jù)庫(kù)只能進(jìn)行經(jīng)過(guò)授權(quán)的有關(guān)操作。在存取控制機(jī)制中,“客體”指的是被訪問(wèn)的資源對(duì)象,“主體”指的是以用戶(hù)名義進(jìn)行資源訪問(wèn)的進(jìn)程、事務(wù)等實(shí)體。訪問(wèn)控制機(jī)制由兩部分組成,分別為定義存取權(quán)限和檢查存取權(quán)限。在數(shù)據(jù)庫(kù)系統(tǒng)中,為了保證用戶(hù)只能訪問(wèn)其有權(quán)存取的數(shù)據(jù),必須預(yù)先對(duì)每個(gè)用戶(hù)定義存取權(quán)限。檢查存取權(quán)限定義存取權(quán)限對(duì)于通過(guò)鑒定獲得權(quán)限的用戶(hù)(即確認(rèn)為合法用戶(hù)),系統(tǒng)根據(jù)其存取權(quán)限定義對(duì)其各種操作請(qǐng)求進(jìn)行控制,確保該用戶(hù)只執(zhí)行合法操作。自主存取控制(DiscretionaryAccessControl,簡(jiǎn)稱(chēng)DAC)強(qiáng)制存取控制(MandatoryAccessControl,簡(jiǎn)稱(chēng)MAC基于角色的存取控制(Role-basedAccessControl,簡(jiǎn)稱(chēng)RBAC)基于屬性的權(quán)限驗(yàn)證(Attribute-BasedAccessControl,簡(jiǎn)稱(chēng)ABAC)知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】自主存取控制DAC自主存取控制允許用戶(hù)(如數(shù)據(jù)庫(kù)管理員、普通數(shù)據(jù)用戶(hù)等)自主對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作權(quán)限進(jìn)行控制?!纠?-2】以SQLServer數(shù)據(jù)庫(kù)為例,三種權(quán)限狀態(tài)。權(quán)限分為3種狀態(tài):授予、拒絕、撤銷(xiāo),可以使用如下的語(yǔ)句來(lái)修改權(quán)限的狀態(tài)。(1)授予權(quán)限(GRANT):授予權(quán)限以執(zhí)行相關(guān)的操作。通過(guò)角色,所有該角色的成員繼承此權(quán)限。(2)撤銷(xiāo)權(quán)限(REVOKE):撤銷(xiāo)授予的權(quán)限,但不會(huì)顯式阻止用戶(hù)或角色執(zhí)行操作。用戶(hù)或角色仍然能繼承其他角色的GRANT權(quán)限。(3)拒絕權(quán)限(DENY):顯式拒絕執(zhí)行操作的權(quán)限,并阻止用戶(hù)或角色繼承權(quán)限,該語(yǔ)句優(yōu)先于其他授予的權(quán)限。知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】自主存取控制DAC自主存取控制允許用戶(hù)(如數(shù)據(jù)庫(kù)管理員、普通數(shù)據(jù)用戶(hù)等)自主對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作權(quán)限進(jìn)行控制?!纠?-3】以SQLServer數(shù)據(jù)庫(kù)為例,使用GRANT命令授予角色“po_mag”對(duì)”P(pán)O”數(shù)據(jù)庫(kù)中“物料”表的DELETE、INSERT、UPDATE權(quán)限。GRANTDELETE,INSERT,UPDATEON物料TOpo_mag知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】自主存取控制DAC自主存取控制允許用戶(hù)(如數(shù)據(jù)庫(kù)管理員、普通數(shù)據(jù)用戶(hù)等)自主對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作權(quán)限進(jìn)行控制?!纠?-4】以SQLServer數(shù)據(jù)庫(kù)為例,使用REVOKE語(yǔ)句撤銷(xiāo)“po_mag”角色對(duì)“物料”表所擁有的DELETE、INSERT、UPDATE權(quán)限。REVOKEDELETE,INSERT,UPDATEON物料FROMpo_magCASCADE知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】自主存取控制DAC自主存取控制允許用戶(hù)(如數(shù)據(jù)庫(kù)管理員、普通數(shù)據(jù)用戶(hù)等)自主對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作權(quán)限進(jìn)行控制?!纠?-5】以SQLServer數(shù)據(jù)庫(kù)為例,在數(shù)據(jù)庫(kù)“PO”的“物料”表中執(zhí)行INSERT操作的權(quán)限授予了public角色,然后于拒絕用戶(hù)guest擁有該項(xiàng)權(quán)限。USEPOGOGRANTINSERTON物料TOpublicGODENYINSERTON物料TOguestGO知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】自主存取控制DAC知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】強(qiáng)制存取控制MAC每一個(gè)數(shù)據(jù)對(duì)象被標(biāo)以一定的密級(jí);每一個(gè)用戶(hù)也被授予某一個(gè)級(jí)別的許可證;對(duì)于任意一個(gè)對(duì)象,只有具有合法許可證的用戶(hù)才可以存取。與DAC相比,MAC機(jī)制比較嚴(yán)格,強(qiáng)制訪問(wèn)控制(MAC)彌補(bǔ)了自主訪問(wèn)控制(DAC)權(quán)限控制過(guò)于分散的缺陷。比如在“諜戰(zhàn)”影片中經(jīng)??吹侥硞€(gè)特工在查詢(xún)機(jī)密文件時(shí),系統(tǒng)會(huì)提示“權(quán)限不足,請(qǐng)?zhí)峁┮患?jí)安全許可”等字樣,而這樣的權(quán)限標(biāo)識(shí)往往都是需要硬件進(jìn)行控制,普通的用戶(hù)并不具有。知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】基于角色的存取控制RBACRBAC其實(shí)就是用戶(hù)關(guān)聯(lián)角色、角色關(guān)聯(lián)權(quán)限,并且,RBAC可以模擬出DAC和MAC的效果。RBAC是目前普遍應(yīng)用的一種權(quán)限設(shè)計(jì)模型。RBAC核心模型包含五個(gè)基本的靜態(tài)集合,即用戶(hù)集(users)、角色集(roles)、許可集(perms)(包括操作集(operators)和控制對(duì)象集(objects)),以及一個(gè)運(yùn)行過(guò)程中動(dòng)態(tài)維護(hù)的集合,即會(huì)話集(sessions)用戶(hù)集包括系統(tǒng)中可以執(zhí)行操作的用戶(hù),是主動(dòng)的實(shí)體;控制對(duì)象集是系統(tǒng)中被動(dòng)的實(shí)體,包含系統(tǒng)需要控制的各類(lèi)信息;操作集是定義在對(duì)象上的一組操作,對(duì)象上的一組操作構(gòu)成了一個(gè)許可;角色則是RBAC模型的核心,通過(guò)用戶(hù)分配和許可分配使用戶(hù)與許可關(guān)聯(lián)起來(lái)。知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】RBAC屬于策略中立型的存取控制模型,既可以實(shí)現(xiàn)自主存取控制策略,又可以實(shí)現(xiàn)強(qiáng)制存取控制策略。【例1-6】以MongoDB數(shù)據(jù)庫(kù)為例基于角色的存取控制RBAC權(quán)限標(biāo)識(shí)說(shuō)明find具有此權(quán)限的用戶(hù)可以運(yùn)行所有和查詢(xún)有關(guān)的命令,如:aggregate、checkShardingIndex、count等。insert具有權(quán)限的用戶(hù)可以運(yùn)行所有和新建數(shù)據(jù)有關(guān)的命令:insert和create等。collStats具有此權(quán)限的用戶(hù)可以指定database或collection執(zhí)行collStats命令。viewRole具有此權(quán)限的用戶(hù)可以查看指定database的角色信息。…..①M(fèi)ongoDB便是采用RBAC模型,對(duì)數(shù)據(jù)庫(kù)的操作都劃分成了權(quán)限知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】【例1-6】以MongoDB數(shù)據(jù)庫(kù)為例基于角色的存取控制RBAC②基于這些權(quán)限,MongoDB提供了一些預(yù)定義的角色角色findinsertcollStatsviewRole……read?

?

……readWrite???

……dbAdmin?

?

……userAdmin

?……知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】【例1-6】以MongoDB數(shù)據(jù)庫(kù)為例基于角色的存取控制RBAC③RBAC規(guī)范還提供了擴(kuò)展模式,如角色繼承(HierarchicalRole)和職責(zé)分離(SeparationofDuty)。角色繼承就是指角色可以繼承于其他角色,在擁有其他角色權(quán)限的同時(shí),還可以關(guān)聯(lián)額外的權(quán)限。這種設(shè)計(jì)可以給角色分組和分層,一定程度簡(jiǎn)化了權(quán)限管理工作知識(shí)點(diǎn)【訪問(wèn)控制】【第一章數(shù)據(jù)庫(kù)安全】【例1-6】以MongoDB數(shù)據(jù)庫(kù)為例基于角色的存取控制RBAC職責(zé)分離是為了避免用戶(hù)擁有過(guò)多權(quán)限而產(chǎn)生利益沖突,例如一個(gè)籃球運(yùn)動(dòng)員同時(shí)擁有裁判的權(quán)限。職責(zé)分離有以下兩種模式。靜態(tài)職責(zé)分離(StaticSeparationofDuty):用戶(hù)無(wú)法同時(shí)被賦予有沖突的角色。動(dòng)態(tài)職責(zé)分離(DynamicSeparationofDuty):用戶(hù)在一次會(huì)話(Session)中不能同時(shí)激活自身所擁有的、互相有沖突的角色,只能選擇其一。靜態(tài)職責(zé)分離動(dòng)態(tài)職責(zé)分離知識(shí)點(diǎn)【視圖定義與查詢(xún)修改】【第一章數(shù)據(jù)庫(kù)安全】視圖是一種數(shù)據(jù)庫(kù)對(duì)象,是從一個(gè)或者多個(gè)數(shù)據(jù)表或視圖中導(dǎo)出的虛表,視圖的結(jié)構(gòu)和數(shù)據(jù)是對(duì)數(shù)據(jù)表進(jìn)行查詢(xún)的結(jié)果。1.視圖能夠簡(jiǎn)化用戶(hù)的操作,從而簡(jiǎn)化查詢(xún)語(yǔ)句;2.視圖使用戶(hù)能以多種角度看待同一數(shù)據(jù),增加可讀性;3.視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性;4.視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù);5.適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢(xún);視圖機(jī)制使系統(tǒng)具有數(shù)據(jù)安全性、數(shù)據(jù)邏輯獨(dú)立性和操作簡(jiǎn)便。視圖的特點(diǎn)知識(shí)點(diǎn)【視圖定義與查詢(xún)修改】【第一章數(shù)據(jù)庫(kù)安全】【例1-7】以SQLServer數(shù)據(jù)庫(kù)為例,創(chuàng)建一個(gè)視圖創(chuàng)建視圖CREATEVIEWv_Item_1ASSELECT物料代碼,物料名稱(chēng)FROM物料表GO知識(shí)點(diǎn)【視圖定義與查詢(xún)修改】【第一章數(shù)據(jù)庫(kù)安全】【例1-8】以SQLServer數(shù)據(jù)庫(kù)為例,創(chuàng)建一個(gè)視圖,用于查看物料類(lèi)別為1的物料的代碼和名稱(chēng),并要求進(jìn)行修改和插入操作時(shí)仍需保證該視圖只顯示物料類(lèi)別

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論