1. 程式人生 > >資料庫安全性操作

資料庫安全性操作

哈哈哈!作業來啦!交任務啦!終於找到啦!看到的寶寶們開心嗎?哈哈哈哈O(∩_∩)O哈哈~

以下內容僅供參考哈,有錯誤的地方歡迎交流,博主也正在學習中ing

1. 建立登入名並配置角色及使用者

(1)使用sa登入SQLServer2008;

       手動啟動SQLServer2008,以sa成功登陸

(2)建立資料庫sa_test,其中建立資料表dbo.saTable;

             create database sa_test;

use sa_test;

create table dbo.saTable(

 id int primary key,

 name

varchar(10)

 )

成功建立資料庫sa_test,併成功建立資料表dbo.saTable

(3)建立登入名L1,具有dbcreator許可權,影射使用者名稱U1,預設資料庫sa_test,資料庫角色為public;

資料庫——>安全性——>登入名——>新建登入名——>登入名為L1,選SQL Server身份驗證,設定密碼,預設資料庫選擇sa_test,資料庫角色預設為public,另外選擇具有dbcreator許可權。

sa_test——>安全性——>使用者——>新建使用者——>使用者名稱為U1,選擇對映的登入名為L1

(4)建立登入名L2,具有dbcreator許可權,影射使用者名稱U2,預設資料庫sa_test,資料庫角色為public。

資料庫——>安全性——>登入名——>新建登入名——>登入名為L2,選SQL Server身份驗證,設定密碼,預設資料庫選擇sa_test,資料庫角色預設為public,另外選擇具有dbcreator許可權。

sa_test——>安全性——>使用者——>新建使用者——>使用者名稱為U2,選擇對映的登入名為L2

2. 使用新登入名登入伺服器並驗證許可權

(1)使用L1登入SQLServer2008,驗證是否可以瀏覽表dbo.saTable;

       以L1登陸SQLServer2008,不可以瀏覽表dbo.saTable

(2)建立資料庫L1_test,使用者名稱預設為dbo,模式預設為dbo;

       create database L1_test;

成功建立資料庫L1_test,使用者名稱預設為dbo,模式預設為dbo

(3)在L1_test中建立資料表dbo.L1Table;

              use L1_test;

create table L1Table(   

 id int primary key,

 name varchar(10)

)

成功在L1_test中建立資料表dbo.L1Table

(4)使用L2登入SQLServer2008,驗證是否可以瀏覽表dbo.saTable;

       以L2登陸SQLServer2008,不可以瀏覽表dbo.saTable

(5)建立資料庫L2_test,使用者名稱預設為dbo,模式預設為dbo;

       create database L2_test;

成功建立資料庫L2_test,使用者名稱預設為dbo,模式預設為dbo

(6)在L2_test中建立資料表dbo.L2Table。

       use L2_test;

              create table L2Table(   

           id int primary key,

 name varchar(10)

    )

成功在L2_test中建立資料表dbo.L2Table

3. sa使用者對新建使用者授權

(1)使用sa登入SQLServer2008;

       以使用sa正確成功登陸SQLServer2008

(2)設定U1使用者在L2_test中具備public許可權;

登入L2——>L2_test——>安全性——>使用者——>新建使用者——>設定使用者名稱為U1,登入名為L1

(3)設定U2使用者在L1_test中具備public許可權;

登入L1——>L1_test——>安全性——>使用者——>新建使用者——>設定使用者名稱為U2,登入名為L1

(4)授權U1在dbo.saTable上的select許可權;

              use sa_test;

grant select

on dbo.saTable

to U1

with grant option

成功授權U1在dbo.saTable上的select許可權

(5)授權U2在dbo.saTable上的insert許可權。

       use sa_test;

grant insert

on dbo.saTable

to U2

with grant option

成功授權U2在dbo.saTable上的insert許可權

4. 新建使用者之間授權

(1)使用L1登入SQLServer2008,驗證是否可以瀏覽表dbo.saTable中的資料,是否可以插入資料;

              use sa_test;

select *

from saTable

使用L1登入SQLServer2008,不可以瀏覽表dbo.saTable中的資料。

insert into saTable values(1,'張麗');

不可以插入資料。

(2)授權U2在dbo.L1Table上的select許可權和insert許可權;

grant select,insert

to U2

成功授權U2在dbo.L1Table上的select許可權和insert許可權

(3)授權U2在L1_test中建立表的許可權;

grant create table

to U2

成功授權U2在L1_test中建立表的許可權

(4)授權U2在L1_test中建立模式的許可權。

grant create schema

to U2

成功授權U2在L1_test中建立模式的許可權

5. 驗證使用者許可權並對指定屬性授權

(1)使用L2登入SQLServer2008,驗證是否可以瀏覽表dbo.saTable中的資料,是否可以插入資料;

use sa_test;

select *

from saTable

使用L2登入SQLServer2008,可以瀏覽表dbo.saTable中的資料。

insert into saTable

values(3,'哈哈')

使用L2登入SQLServer2008,可以插入往dbo.saTable中插入資料。

(2)驗證是否可以瀏覽表dbo.L1Table中資料,是否可以插入資料;

use L1_test

select *

from L1Table

可以瀏覽表dbo.L1Table中資料

insert into L1Table

values(1,'哈哈')

可以插入資料

(3)建立U2使用者的資料庫模式UU,驗證是否成功;

create schema "UU" authorization U2

在L1中L_test資料庫下操作該語句成功

(4)建立資料表UU.Test,驗證是否成功(語句建立成功);

create table UU.Test(

id int primary key,

tt char(10)

)

在L1中L_test資料庫下操作該語句成功

(5)驗證U2是否具備UU.Test的全部許可權,如drop;

              use L1_test

select *

from UU.Test;

       查詢成功

use L1_test

drop table UU.Test

       刪除成功

use L1_test

insert into UU.Test

values(1,'恩恩');

插入成功

(6)授權U1在dbo.L2Table上的select許可權和修改指定列的許可權。

use L2_Test

grant select,update(name)

on L2Table

to U1

成功授權U1在dbo.L2Table上的select許可權和修改指定列的許可權

6. 收回許可權並驗證

(1)使用L1登入SQLServer2008,驗證是否可以瀏覽dbo.L2Table中資料,是否可以修改指定的列;

use L2_test

select *

from L2Table

use L2_test

update L2Table

set name='無二'

where id=1

使用L1登入SQLServer2008,可以瀏覽dbo.L2Table中資料,可以修改指定的列

(2)收回U2在dbo.L1Table上的insert許可權;

use L1_test

revoke insert

on L1Table

from U2

成功收回U2在dbo.L1Table上的insert許可權

(3)使用L2登入SQLServer2008,驗證是否可以瀏覽表uu1.L1Table中資料,是否可以插入資料。

use L2_test

select *

from UU.L1Table

use L2_test

insert into L1Table

valus(3,'積極')

使用L2登入SQLServer2008,不可以瀏覽表uu1.L1Table中資料,不可以插入資料

7. 建立角色並授權

(1)使用L1登入SQLServer2008,在L1_test中建立資料表dbo.L1Table2;

              成功使用L1登入SQLServer2008

use L1_test

create table L1Table2(  

       id int primary key,

       name varchar(10)

    )

成功在L1_test中建立資料表dbo.L1Table2

(2)建立資料庫角色R1;

create role R1

成功建立資料庫角色R1

(3)將在dbo.L1Table表上的查詢和插入許可權授予角色R1,將dbo.L1Table2表上的查詢許可權和修改指定列許可權授予角色R1;

grant select,insert

on dbo.L1Table

to R1

grant select,update(name)

on dbo.L1Table2

to R1

成功將在dbo.L1Table表上的查詢和插入許可權授予角色R1,併成功將dbo.L1Table2表上的查詢許可權和修改指定列許可權授予角色R1

(4)將使用者新增到角色R1中;

exec sp_addrolemember R1,U2

使用者成功新增到角色R1中

(5)使用L2登入SQLServer2008,驗證對L1_test中資料表的操作許可權。

use L1_test

select *

from L1Table

可以查詢

use L1_test

insert into L1Table

values(2,'喲喲')

可以插入

use L1_test

update L1Table

set name='破破'

where id=1

不可以更新

use L1_Test

delete from L1Table

where id=1

不可以刪除

8. 收回角色的許可權

(1)使用L1登入SQLServer2008,收回角色R1在dbo.L1Table表上的插入許可權;

revoke insert

on L1Table

from R1

成功使用L1登入SQLServer2008,成功收回角色R1在dbo.L1Table表上的插入許可權

(2)使用L2登入SQLServer2008,驗證對L1_test中資料表的操作許可權。

use L1_test

select *

from L1Table

可以查詢

use L1_test

insert into L1Table

values(3,'谷歌')

不可以插入

use L1_test

update L1Table

set name='可怕'

where id=1

不可以更新

use L1_test

delete from L1Table

where id=1

不可以刪除