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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

POGOCREATE

TABLE

物料表(物料代碼

int

IDENTITY(100,1)

NOT

NULL,物料名稱

nvarchar(50)

NOT

NULL,物料類別

int

NOT

NULL,計量單位

nvarchar(20)

NULL,CONSTRAINT

PK_FItemID

PRIMARY

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

TABLE

采購訂單ADD

CONSTRAINT

PK_FBillNo

PRIMARY

KEY(采購訂單號)注意:主鍵約束保證數(shù)據(jù)的唯一性,非空性。【例3】刪除主鍵約束(將物料表的主鍵約束刪除)。ALTER

TABLE

物料表DROP

CONSTRAINT

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

POGOCREATE

TABLE

采購訂單分錄表

(分錄號

INT,采購訂單號

VARCHAR(30),物料代碼

INT,訂貨數(shù)量

FLOAT,單價

FLOAT,金額

FLOAT,計量單位

INT,交貨日期

DATETIME,備注

VARCHAR(255),CONSTRAINT

PK_POOrderEntry

PRIMARY

KEY(分錄號,采購訂單號),CONSTRAINT

FK_FItemID

FOREIGN

KEY(物料代碼)

References

物料表(物料代碼))ON

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

TABLE

采購訂單分錄表ADD

CONSTRAINT

FK_FBillNo

FOREIGN

KEY(采購訂單號)

References

采購訂單頭表

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

TABLE

采購訂單分錄表DROP

CONSTRAINT

FK_FItemIDGO1.2約束3.唯一約束(UniqueConstraint)唯一約束指定列或列的組合的值具有唯一性,以防止在列中輸入重復的值。唯一約束指定的列可以有NULL屬性。由于主鍵值是具有唯一性的,因此主鍵列不能再設定唯一約束。唯一約束最多由16個列組成。1.2約束【例7】定義一個員工信息表,其中員工的身份證號具有唯一性。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】添加唯一約束(身份證號)。ALTER

TABLE

EmployeesADD

CONSTRAINT

UK_cardid

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

TABLE

EmployeesDROP

CONSTRAINT

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

TABLE

EmployeesADD

CONSTRAINT

CK_Age

CHECK(emp_age

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

TABLE

采購訂單分錄表

(分錄號

INT,采購訂單號

VARCHAR(30),物料代碼

INT,訂貨數(shù)量

FLOAT,單價

FLOAT,金額

FLOAT,計量單位

INT,交貨日期

DATETIME,備注

VARCHAR(255),CONSTRAINT

PK_POOrderEntry

PRIMARY

KEY(分錄號,采購訂單號)

,CONSTRAINT

FK_FItemID

FOREIGN

KEY(物料代碼)

References

物料表(物料代碼),CONSTRAINT

CK_quantity

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

ON

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

TABLE

采購訂單頭分錄表DROP

CONSTRAINT

CK_quantityGO1.2約束5.默認約束(DefaultConstraint)默認約束通過定義列的默認值或使用數(shù)據(jù)庫的默認值對象綁定表的列,來指定列的默認值。【例4.28】添加默認約束(采購訂單分錄表中的訂貨數(shù)量默認為100)。ALTER

TABLE

采購訂單分錄表ADD

CONSTRAINT

DF_FQty

DEFAULT100FOR

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

TABLE

供應商表ADD

CONSTRAINT

DF_FAddress

DEFAULT('地址不詳')

FOR

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

TABLE

采購訂單分錄表DROP

CONSTRAINT

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

TABLE

采購訂單分錄表(分錄號

INT,采購訂單號

VARCHAR(30),物料代碼

INT,訂貨數(shù)量

FLOAT

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

/*列約束*/單價

FLOAT,金額

FLOAT,單位

INT,交貨日期

DATETIME,備注

VARCHAR(255),CONSTRAINT

PK_POOrderEntry

PRIMARY

KEY(分錄號,采購訂單號),

/*表約束*/)

ON

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

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

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

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

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

索引概述

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

索引概述

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

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

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

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

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

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

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

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

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

2.2

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

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

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

index

idx_nameon

學生表(姓名)2.2

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

index

idx_xhxmon

學生表(學號,姓名)2.2

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

unique

clustered

index

idx_學號_unique

on

選課表(學號)注意:有重復的鍵值是無法創(chuàng)建唯一聚集索引的,所以該題可以用(學號,課程號)兩列作為唯一聚集索引。×create

unique

clustered

index

idx_學號_unique

on

選課表(學號,課程號)2.2

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

index

idx_snoon

選課表(學號

desc)with

fillfactor

=60上機實驗任務一實驗1第一題:【索引管理】1、對產品名稱表上的產品編號列建立唯一非聚集索引ix_pid(要求用T-sql語句實現(xiàn))。2、在員工表上的所屬部門列和性別列建立復合索引ix_2(要求用sql語句實現(xiàn))。15分鐘2.3管理索引2.3

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

管理索引1.重命名索引可以通過存儲過程sp_rename可以對索引名進行重命名。【例5】將“學生表”的索引idx_xhxm重命名為idx_text。exec

sp_rename

'學生表.idx_xhxm','idx_text'goexec

sp_rename

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

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

INDEX

學生表.idx_name上機實驗任務二實驗2第二題:【索引管理】刪除建立在產品名稱的索引ix_pid。5分鐘小結本講小結2.

索引2.1索引概述2.2創(chuàng)建索引2.3管理索引★測驗小測驗完成頭歌平臺

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

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

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

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

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

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

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

3.23.2

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

創(chuàng)建視圖-利用對象資源管理器創(chuàng)建視圖3.2第五步:單擊【執(zhí)行SQL】執(zhí)行按鈕,運行select語句,查看運行結果。第六步:測試正常后,單擊【保存】,在彈出的對話框中輸入視圖名稱,完成視圖的創(chuàng)建。

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

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

(代碼,品名)AS

SELECT產品編碼,產品名稱

FROM

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

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

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

VIEW

v_test_2AS

SELECT銷售主表.*

FROM銷售主表A,客戶表B WHERE

A.客戶號=B.客戶號 AND

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

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

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

VIEW

v_test3

WITHENCRYPTIONAS

SELECT銷售主表.*

FROM銷售主表A,客戶表B WHERE

A.客戶號=B.客戶號

AND

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

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

VIEW

v_test3AS

SELECT

*

FROM

v_test2

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

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

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

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

VIEW

v_test5AS

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

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

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

view_name

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

[WITHENCRYPTION]

AS

SELECT_statement

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

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

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

③不能使用ORDERBY子句。

④不能使用INTO子句。

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

3.3管理視圖3.3

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

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

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

查看視圖的定義文本。sp_depends查看視圖對表的依賴關系和引用的字段。3.3

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

S_GGO3.3

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

S_GGO3.3

管理視圖查看視圖sp_depends【例9】查找S_G視圖的依賴關系和引用的字段。sp_depends

S_GGO3.3

管理視圖2.修改視圖【例10】將v_student視圖修改為只包含學生學號、姓名。alter

view

v_studentasselect

學號,姓名

from

學生表3.3

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

VIEW

v_test_2AS

SELECT銷售主表.*

FROM銷售主表A,客戶表B WHERE

A.客戶號=B.客戶號 AND

客戶名稱=‘杭州華為分公司’3.3

管理視圖3.視圖更名利用系統(tǒng)提供的存儲過程sp_rename可以對視圖進行重命名。【例12】將V_1視圖的名稱修改為V_2。sp_rename

‘V_1','

V_2','VIEW'GO3.3

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

VIEW

v_student3.3上機實驗任務3任務3:【管理視圖】10分鐘任務3-1【查看視圖】任務3-2【修改視圖】任務3-3【視圖更名】任務3-4【刪除視圖】

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

利用視圖管理數(shù)據(jù)在創(chuàng)建視圖之后,可以通過視圖來對基表的數(shù)據(jù)進行管理。但是無論在什么時候對視圖的數(shù)據(jù)進行管理,實際上都是在對視圖對應的數(shù)據(jù)表中的數(shù)據(jù)進行管理。利用視圖查詢數(shù)據(jù)利用視圖插入數(shù)據(jù)利用視圖更新數(shù)據(jù)利用視圖刪除數(shù)據(jù)

利用視圖管理數(shù)據(jù)利用視圖查詢數(shù)據(jù)利用T-SQL語言查詢視圖數(shù)據(jù)。【例14】查詢學號為“2011101”學生的課程成績。(從v_Test視圖中查找)select

*from

v_Testwhere

學號=

'2011101'

3.4上機實驗任務4任務4-1:【查詢視圖】5分鐘基于v_product_1視圖,查詢成本低于在1000產品的產品編號、名稱和價格。

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

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

into

v_studentvalues(2019101,'王明',20)因為v_student視圖沒有年齡列。insert

into

v_studentvalues(2019101,'王明')√3.4

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

into

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

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

into

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

利用視圖管理數(shù)據(jù)3.利用視圖更新數(shù)據(jù)使用UPDATE語句可以通過視圖修改基本表的數(shù)據(jù)。【例18】將視圖v_student中學號為‘2019101’的學生姓名改為張山。update

v_studentset

姓名='張山'where

學號=2019101update

學生表set

姓名='張山'where

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

利用視圖管理數(shù)據(jù)4.利用視圖刪除數(shù)據(jù)使用DELETE語句可以通過視圖刪除基本表的數(shù)據(jù)。但對于依賴于多個基本表的視圖,不能使用DELETE語句。【例19】刪除視圖stu_is_c1中學號為‘2019127’的學生記錄。delete

from

學生表where

學號='2019127'delete

from

stu_is_c1where

學號='2019127'3.4上機實驗任務4任務4-4:【利用視圖刪除數(shù)據(jù)】8分鐘刪除產品編號為’P0014’的產品小結本講小結4.5

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

視圖概述視圖是一種數(shù)據(jù)庫對象,是從一個或者多個數(shù)據(jù)表或視圖中導出的虛表,視圖的結構和數(shù)據(jù)是對數(shù)據(jù)表進行查詢的結果;視圖的特點:1.視圖能夠簡化用戶的操作,從而簡化查詢語句;2.視圖使用戶能以多種角度看待同一數(shù)據(jù),增加可讀性;3.視圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性;4.視圖能夠對機密數(shù)據(jù)提供安全保護;5.適當?shù)睦靡晥D可以更清晰的表達查詢。小結

視圖

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

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

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

[WITHENCRYPTION]

ASSELECT_statement

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

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

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

③不能使用ORDERBY子句。

④不能使用INTO子句。

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

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

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

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

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

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

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

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

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

案例1:基于視圖的訪問控制】通篇案例導入:X國案例【

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

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

案例1:基于視圖的訪問控制】案例解析視圖的優(yōu)點2假設國王只想要用戶大臣C查看CreditCard表中的用戶姓名UName和信用卡號CardNo兩個列。優(yōu)點2:視圖可以加強安全性CREATEVIEWC_CreditCardASSELECTUName,CardNoFROMCreditCard;GRANTselectONC_CreditCardTO大臣C;只看到兩列大臣C將會看到CreditCard表的全部內容假設想要每個人都可以查詢CreditCard表,但是只能看到用戶自己的記錄只看到自己的CREATEVIEWmy_CreditCardASSELECT*FROMCreditCardWHEREUName=USER;GRANTselectONmy_CreditCardTOpublic;案例【

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

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

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

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

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

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

?

……readWrite???

……dbAdmin?

?

……userAdmin

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

溫馨提示

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

最新文檔

評論

0/150

提交評論