智能2112楊陽
一、目的與要求:
1、設(shè)計用戶子模式
2、根據(jù)實際需要創(chuàng)建用戶角色及用戶,并授權(quán)
3、針對不同級別的用戶定義不同的視圖,以保證系統(tǒng)的安全性
二、內(nèi)容:
- 先創(chuàng)建四類用戶角色:
管理員角色Cusm、客戶角色Supp、供貨商角色Admin、商家銷售工作人員角色Salor。
源碼:
create role 'Cusm';
create role 'Supp';
create role 'Admin';
create role 'Salor';
- 創(chuàng)建客戶視圖、供貨商視圖
(1)客戶視圖要求顯示所有客戶號及對應(yīng)客戶下的所有訂單及每個訂單的價格
源碼:
create view view_Supp as select customers.c_id,orders.o_num,orderitems.item_price from customers,orders,orderitems where customers.c_id=orders.c_id and orderitems.o_num=orders.o_num;
效果:
(2)供貨商視圖要求顯示所有供貨商號及供貨商所供水果信息
源碼:
create view view_Admin as select suppliers.s_id,fruits.f_id,fruits.f_name,fruits.f_price from suppliers,fruits where fruits.s_id=suppliers.s_id;
效果:
3.為以上四類用戶角色授予合適的權(quán)限,要求:
(1)管理員擁有所有權(quán)限:
源碼:
grant all on fruitshop.* to 'Cusm';
?
(2)客戶只能查看與之相關(guān)的信息(基本信息,購買信息)
源碼:
grant select on view_Supp to 'Supp';
(3)供貨商只能查看與之相關(guān)的信息(可以查看自己供貨的水果信息)。
源碼:
grant select on view_Admin to 'Admin';
(4)商家銷售工作人員可以查看數(shù)據(jù)庫并錄入信息,但不能修改、刪除;
源碼:
????? grant select,insert on fruitshop.* to 'Salor';
???????
?????
- 為每類用戶角色至少創(chuàng)建一個用戶(新建用戶并分配對應(yīng)的角色,統(tǒng)一設(shè)置初始密碼為’123456’)
注意:附上源碼,創(chuàng)建用戶并授權(quán)成功后在交互式運行狀態(tài)下查看每個用戶權(quán)限并截圖
客戶用戶:C001,任意主機(jī)地址,授權(quán)為客戶角色的所有權(quán)限;
供貨商用戶:S001,任意主機(jī)地址,授權(quán)為供貨商角色的所有權(quán)限;;
商家銷售工作人員用戶:B001,任意主機(jī)地址,授權(quán)為銷售工作人員角色的所有權(quán)限;;
管理員用戶:A001,本機(jī),擁有所有權(quán)限
源碼:
create user 'C001'@'%' identified by '123456';
grant Supp to 'C001';
create user 'S001'@'%' identified by '123456';
grant Admin to 'S001';
create user 'B001'@'%' identified by '123456';
grant Salor to 'B001';
create user 'A001'@'localhost' identified by '123456';
grant all on fruitshop.* to 'A001'@'localhost'
?
5.測試:
退出已用root賬號登陸的MySQL服務(wù)器,用這四類用戶帳號分別登陸MySQL服務(wù)器并測試其功能(在交互式運行狀態(tài)下測試,先附上測試源碼,關(guān)鍵結(jié)果截圖)。
測試要求:退出root帳號,重新登陸指定帳號,顯示當(dāng)前數(shù)據(jù)庫中所有表,查看權(quán)限內(nèi)某張表內(nèi)的所有信息,對權(quán)限內(nèi)某張表進(jìn)行增、刪、改、查操作并查看能否正確執(zhí)行這些操作,如果執(zhí)行錯誤請說明導(dǎo)致此錯誤的原因。
注意:每次登錄后先設(shè)置當(dāng)前角色,否則無效果:set role 角色名;
測試客戶用戶:
mysql -uC001 -p123456;
set role Supp;
use fruitshop;
show tables;
slect* from `view_supp`;
update view_supp set c_address="第五社區(qū)",c_city="廈門",c_zip=111000,c_contact="cxr",c_email="123@678" where c_id=10000;
insert into view_supp values(01,"AAA","BBB","CCC",111,"123@321");
delete from view_supp.c_zip;
顯示表:
Select操作:
Update操作:
原因:無權(quán)限
Insert操作:
原因:無權(quán)限
Delete操作:
原因:無權(quán)限
測試供貨商用戶:
mysql -uS001 -p123456
se role Admin;
use fruitshop;
show tables;
select* from `view_Admin`;
update view_Admin set s_city="Beijing",s_zip=111000,s_call=23333 where s_id=100;
insert into view_Admin values(01,"AAA","BBB",111,222);
delete from view_Admin.s_zip;
顯示表:
Select操作:
Update操作:
原因:無權(quán)限
Insert操作:
原因:無權(quán)限
Delete操作:
原因:無權(quán)限
測試商家銷售工作人員用戶:
mysql -uB001 -p123456
set role Salor;
use fruitshop;
show tables;
select* from suppliers;
update suppliers SET s_name="Sariel",s_city="Shanghai",s_zip=520000,s_call=777777 where s_id=107;
insert into suppliers values(108,"Sariel","GQ City",520000,777777);
delete from suppliers.s_name;
顯示表:
Select操作:
Update操作:
原因:無權(quán)限
Insert操作:
Delete操作:
原因:無權(quán)限
測試管理員用戶:
mysql -uA001 -p123456
use fruitshop;
show tables;
select* from customers;
update customers set c_name="Evan",c_address="WZ Mall",c_city="Shenzhen",c_zip=521000,c_contact=666666,c_email="LU@666" where c_id=10003;
insert into customers values(10005,"Charlie","NOVATEN INC","GQ City",233333,555555,"love@sweety");
delete from customers where c_id=10000;
顯示表:
Select操作:
Update操作:
Insert操作:
Delete操作:
原因:c_id具有外鍵約束
三、小結(jié)
1.遇到的問題及解決過程
a. 用戶權(quán)限設(shè)置問題:通過創(chuàng)建視圖,讓用戶獲得部分對視圖操作的權(quán)限
b. 用戶賬號切換問題:命令行quit退出,重新輸入賬號密碼進(jìn)行登錄
c. 角色與用戶權(quán)限問題:學(xué)習(xí)相關(guān)語法,讓用戶獲得角色的權(quán)限
- 產(chǎn)生的錯誤及原因分析
??? 在測試用戶的增刪改查時,不能完成增刪改查功能
??? 原因:未授權(quán),c_id的相關(guān)語句具有外鍵約束文章來源:http://www.zghlxwxcb.cn/news/detail-759226.html
- 體會和收獲。
通過本次博客,對數(shù)據(jù)庫進(jìn)行一些列操作,掌握參照完整性約束、設(shè)計用戶子模式等功能,并且根據(jù)實際需要創(chuàng)建了不同的用戶授以不同的權(quán)限,以此來針對不同級別的用戶定義不同的視圖,保證了系統(tǒng)的安全性。同時在這個過程中有遇到很多的問題與錯誤,但是都在不斷的實驗與互聯(lián)網(wǎng)的幫助下解決了出現(xiàn)的問題與錯誤。感受到即使是表面上看上去很簡單的題目,要去實踐也會遇到很多不容易解決的問題與錯誤。總的來說收獲滿滿。文章來源地址http://www.zghlxwxcb.cn/news/detail-759226.html
到了這里,關(guān)于數(shù)據(jù)庫——安全性的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!