dnat和snat的簡單應用
1、你有沒有連結許可權
2、你有沒有執行操作的許可權(select/update等)
對於1:伺服器如何判斷使用者有沒有許可權連結上來?
依據三個引數:
你從哪來? host
你是誰? user
你的密碼是多少? password
使用者的這3個資訊,儲存在mysql.user表中
use mysql
desc user;
select host,user,password from user; //可以看到root只能通過localhost來連結
cmd:
ipconfig
mysql -h192.168.2.101 -uroot -p //連結報錯
mysql -h127.0.0.1 -uroot -p
mysql -hlocalhost -uroot -p //可以連結
修改host域,使Ip可以連結
update user set host = '192.168.2.101' where user = 'root';
刪除無關使用者
delete from user where user='';
flush privileges; //一定要衝刷許可權
mysql -h192.168.2.101 -uroot -p //可以連結
mysql -hlocahost -uroot -p //不能連結
區域網訪問使用%萬用字元 192.168.1.%
如何修改使用者的密碼
update user set password=password('111111') where user='root';
flush privileges;
user表判斷你能不能進來
db表判斷使用者有沒有某個庫的操作權
tables_priv判斷使用者有沒有某張表的操作權
新增一個使用者 在user表中全域性授權
grant [許可權1,許可權2,許可權3,...] on *.* to user@'host' identified by '密碼' //*.*代表所有庫所有表
常用許可權有:all,create,drop,insert,delete,update,select
grant all on *.* to lisi@'192.168.2.%' identified by '';
收回許可權
revoke all on *.* from list@'192.168.1.%';
flush privileges;
賦權管理某一個庫 //此時user表中許可權全是N 但mysql.db表中lisi 對於ecshop表有操作許可權
grant all on ecshop.* to lisi@'192.168.1.%';
收回許可權 //db表中無許可權資料
revoke all on ecshop.* from list@'192.168.1.%';
賦與表級別許可權 //此時user表中lisi無許可權 db表中無lisi資料 tables_priv中有lisi針對表的許可權
grant insert,update,select on test_database.test_table to lisi@'192.168.1.%'; //使用者可以增改查,但不能刪資料
提示:如果在開發中,某張表的資料,是原始資料,不能被刪除,除了在php的業務邏輯上來控制,還可以從mysql使用者許可權管理來控制
mysql的許可權控制,甚至可以精確到列
常用的授權許可權在手冊中 grant部分