概述
之前的一篇博客中寫到過關(guān)于服務(wù)器登錄名,服務(wù)器角色,數(shù)據(jù)庫用戶,數(shù)據(jù)庫角色的關(guān)系,理論的一些知識,大家可以看看這篇博客:登錄名,服務(wù)器角色,用戶名和數(shù)據(jù)庫角色。本片博客注重操作。
數(shù)據(jù)庫架構(gòu)
在具體的操作時(shí),先普及一下數(shù)據(jù)庫架構(gòu)的知識,這里需要注意一下,這里說的數(shù)據(jù)庫架構(gòu)不是針對數(shù)據(jù)庫的拓?fù)浣Y(jié)構(gòu)來說的,而是針對數(shù)據(jù)庫管理系統(tǒng)中,針對數(shù)據(jù)庫的一個(gè)功能。
舉例說架構(gòu)和架構(gòu)的好處,數(shù)據(jù)庫為一座樓,那么架構(gòu)就是一層樓,一層樓中的房子就是表,由表產(chǎn)生的存儲過程,觸發(fā)器等等也都屬于這個(gè)架構(gòu),將一層樓租給多人去住,這些人在這層樓房里隨便折騰,但是,這些人走后,他折騰的東西不需要改變,后來人可以再次基礎(chǔ)上接著折騰,因?yàn)榍叭苏垓v出來的東西都屬于這個(gè)架構(gòu),東西屬于架構(gòu)不是屬于人,所以,人走了之后,東西不需要再進(jìn)行相應(yīng)的改變。
框架:存放數(shù)據(jù)庫對象的一個(gè)容器,框架里面的對象必須是唯一的,不同框架的對象的名稱可以相同,一個(gè)數(shù)據(jù)庫有多個(gè)框架。在之前(sql 2000)的數(shù)據(jù)庫對象訪問時(shí),采用的是服務(wù)器名.數(shù)據(jù)庫名.用戶名.表名稱,之后的數(shù)據(jù)庫訪問方式是這樣的,服務(wù)器名.數(shù)據(jù)庫名.框架名.表名稱,這樣做的好處就是,某個(gè)用戶辭職不干了,我就可以直接刪除這個(gè)用戶就行了,但是,之前是不行的,因?yàn)閿?shù)據(jù)庫對象是通過用戶名查找的,這樣的一個(gè)修改是非常麻煩的。當(dāng)然框架的作用不僅僅如此,如:框架限制了用戶對數(shù)據(jù)庫其它框架表的訪問。好了,理論方面的東西到此結(jié)束,下面開始實(shí)戰(zhàn)。
創(chuàng)建數(shù)據(jù)庫系統(tǒng)登錄名
創(chuàng)建3個(gè)系統(tǒng)登錄名,分別為Student、Teacher和Person,具體操作如下圖
創(chuàng)建數(shù)據(jù)庫
create database DataBaseName go |
創(chuàng)建數(shù)據(jù)庫架構(gòu)
創(chuàng)建3個(gè)架構(gòu),架構(gòu)的名字分別為:Teacher_KJ、Student_KJ和Person_KJ,具體操作如下圖
創(chuàng)建數(shù)據(jù)庫角色
創(chuàng)建2個(gè)數(shù)據(jù)庫角色,角色名字分別為:Teacher_JS和Student_JS,分別對象上面的架構(gòu)名稱,具體對應(yīng)一看就可以看出,如:Teacher_JS對應(yīng)Teacher_KJ,具體操作如下圖
創(chuàng)建數(shù)據(jù)庫用戶
創(chuàng)建3個(gè)用戶,分別為Teacher_User、Student_User和Person_User,其中Teacher_User和Student_User的屬于角色,沒有具體的架構(gòu),Person_User不屬于創(chuàng)建的角色,擁有Person_KJ,具體操作如下圖
創(chuàng)建相應(yīng)架構(gòu)下的表
use DataBaseName go create table [Teacher_KJ].TableName1 ( id int primary key, name varchar not null ) go create table [Student_KJ].TableName1 ( id int primary key, name varchar not null ) go create table [Person_KJ].TableName1 ( id int primary key, name varchar not null ) go create table TableName1 ( id int primary key, name varchar(20) not null ) |
最終結(jié)果
有圖有真相,下圖為最終的結(jié)果圖
總結(jié)
下面是一張總結(jié)圖,不是本人畫的,但是非常的經(jīng)典,所以就直接拿來用了
Sql Server的功能非常的強(qiáng)大,例如,可以通過SQL Agent服務(wù),也就是代理服務(wù)器進(jìn)行很多其他事情的操作,例如:作業(yè),維護(hù)計(jì)劃,發(fā)送郵件等等,當(dāng)然,在進(jìn)行這些之前最好對數(shù)據(jù)庫進(jìn)行過備份和還原(完全備份,差異備份,日志備份)操作,因?yàn)镾QL Agent服務(wù)的一個(gè)功能就是實(shí)現(xiàn)備份和還原的自動化。
Copyright? 2012-2013 TATAIT.COM All Rights Reserved 深圳塔塔咨詢服務(wù)有限公司 版權(quán)所有 深圳網(wǎng)站建設(shè):沙漠風(fēng)
塔塔IT—高端IT培訓(xùn)領(lǐng)導(dǎo)品牌,專注于IT前沿技術(shù)的傳播與應(yīng)用。專業(yè)創(chuàng)造價(jià)值,服務(wù)贏得口碑!