day09-2視圖和用戶權限( 二 )


day09-2視圖和用戶權限

文章插圖
2.MySQL管理2.1Mysql用戶管理
  • MySQL用戶
mysql中的用戶,都存儲在系統數據庫mysql中的user表中
day09-2視圖和用戶權限

文章插圖
day09-2視圖和用戶權限

文章插圖
其中user表的重要字段說明:
  1. host:允許登錄的“位置“,localhost表示該用戶只允許本機登錄,也可以指定ip地址,如:192.168.1.100
  2. user:用戶名
  3. authentication_string:密碼,是通過mysql的password()函數加密之后的密碼 。
  • 創建用戶
create user '用戶名'@'允許登錄的位置' identified by '密碼' -- 創建用戶,同時指定密碼
  • 刪除用戶
drop user '用戶名'@'允許登錄的位置';
例子
-- mysql用戶管理-- 原因:當我們做項目開發時 , 可以根據不同的開發人員,賦給他們相應的操作權限-- 所以,mysql數據庫管理人員(root),根據需要創建不同的用戶 , 賦給相應的權限,供人員使用-- 1.創建新用戶-- 1.1 'liyuelian'@'localhost' 表示用戶的完整信息--'liyuelian' 用戶名'localhost' 登錄ip-- 1.2 123456 為密碼,在mysql表存放的是password函數加密過后的密碼--*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9CREATE USER 'liyuelian'@'localhost' IDENTIFIED BY '123456';SELECT `host`,`user`,authentication_string FROM mysql.user;-- 2.刪除用戶DROP USER 'liyuelian'@'localhost';-- 3.登錄不同的數據庫用戶,登錄到DBMS后,根據相應的權限,可以操作的數據庫和數據對象(表,視圖,觸發器)都不一樣
day09-2視圖和用戶權限

文章插圖
  • 用戶修改密碼
-- 修改自己的密碼set password = password('密碼');-- 修改他人的密碼(需要有修改用戶密碼權限)set password for'用戶名'@'登錄的位置' = password('密碼');
例子
-- 修改本用戶密碼SET PASSWORD= PASSWORD('abcdef');-- 修改他人的密碼(需要有修改用戶密碼權限)SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');-- 錯誤,提示權限不夠-- 切換到root用戶,修改一般用戶的密碼SET PASSWORD FOR 'olien'@'localhost' = PASSWORD('123456');-- 成功,root用戶權限很高2.2Mysql權限管理
  • Mysql中的權限

day09-2視圖和用戶權限

文章插圖
  • 給用戶授權
    # 基本語法:grant 權限列表 on 庫.對象名 to '用戶名'@'登錄位置' [identified by '密碼']#說明:# 1. 權限列表 , 多個權限用逗號分開#如:grant select on....#grant select ,delete,create on....#2. 特別說明#*.*:表示本系統中的所有數據庫的所有對象(表 , 視圖,存儲過程)#庫.*: 表示某個數據庫中的所有數據對象(表,視圖,存儲過程)# 3. identified by可以省略 , 也可以寫出# (1)如果用戶存在,就是修改該用戶的密碼# (2)如果該用戶不存在 , 就是創建該用戶
  • 回收用戶權限
    #基本語法revoke 權限列表 on 庫.對象名 from '用戶名'@'登錄位置';
  • 權限生效指令
    #如果權限沒有生效,可以執行下面命令#基本語法flush privileges;
練習
  1. 創建一個用戶(用戶名隨意),密碼為123,并且只可以從本地登錄,不讓遠程登錄mysql
  2. 創建testdb庫和表news,要求:使用root用戶創建
  3. 給用戶分配查看news表和添加數據的權限
  4. 測試看看用戶是否只有這幾個權限
  5. 修改密碼為abc , 要求使用root用戶完成
  6. 重新登錄
  7. 回收新用戶的權限
  8. 使用root用戶刪除你的用戶
root用戶:
-- 演示用戶權限的管理-- 1. 創建一個用戶(用戶名隨意),密碼為123,并且只可以從本地登錄,不讓遠程登錄mysqlCREATE USER 'olien'@'localhost' IDENTIFIED BY '123'; -- 2. 創建testdb庫和表news,要求:使用root用戶創建-- 使用root用戶創建庫和表CREATE DATABASE testdb;CREATE TABLE news( id INT , content VARCHAR(32))-- 添加一條測試數據INSERT INTO news VALUES(100,'北京新聞');-- 3. 給用戶分配查看news表和添加數據的權限-- 4. 測試看看用戶是否只有這幾個權限GRANT SELECT,INSERT ON testdb.news TO 'olien'@'localhost';-- 5. 修改olien用戶的密碼為abc , 要求使用root用戶完成SET PASSWORD FOR'olien'@'localhost' = PASSWORD('abc');-- 6. 重新登錄-- 7.回收新用戶的權限REVOKE SELECT,INSERT ON testdb.news FROM 'olien'@'localhost';-- 8. 使用root用戶刪除你的用戶DROP USER 'olien'@'localhost';

推薦閱讀