資料庫安全性操作
哈哈哈!作業來啦!交任務啦!終於找到啦!看到的寶寶們開心嗎?哈哈哈哈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
)
成功建立資料庫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
不可以刪除