mysql(二)-用戶管理與權限
阿新 • • 發佈:2018-03-28
mysql用戶相關是存放在mysql.user表中,可以使用desc查看表結構
MySQL大小寫詳情:
1、數據庫名嚴格區分大小寫
2、表名嚴格區分大小寫的
3、表的別名嚴格區分大小寫
4、變量名嚴格區分大小寫
5、列名在所有的情況下均忽略大小寫
6、列的別名在所有的情況下均忽略大小寫
用戶管理
用戶格式
用戶名@可登錄主機
user@host
host:host可以為主機名,也可以為IP地址,mysql裏主機名和IP地址屬於不同的主機;
host可以使用通配符
通配符 | 代表含義 |
---|---|
_ | 任意單個字符 |
% | 任意長度的任意字符 |
例子 | 代表 |
---|---|
% | 所有主機 |
192.168.%.% | 所有以192.168.開頭的主機 |
創建用戶
格式:
方法一:此種方法不會授於用戶權限
create user ‘用戶名‘@‘可登錄主機‘ identified by ‘密碼‘
CREATE USER ‘hunk‘@‘localhost‘ IDENTIFIED BY ‘123456‘;
方法二:
grant 權限 on 數據庫.* to ‘用戶名‘@‘可登錄主機‘ identified by ‘密碼‘;
grant all on *.* to ‘hunk2‘@‘%‘ identified by ‘123456‘;
授權格式: grant 權限 on 數據庫對象 to 用戶 grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by ‘密碼‘; grant select on testdb.* to common_user@‘%‘‘; 授權指定用戶對指定數據查詢權限 grant select on testdb.* to user1@‘localhost‘,user2@‘localhost‘; 授權多個用戶對指定數據查詢權限 grant create,delete,insert,update on testdb.* to developer@‘192.168.0.%‘; 授權指定用戶對指定數據創建,刪除,增加,更新權限 grant select (name,age) on dbname.tables to hunk@‘localhost‘; 授權指定用戶對指定表中的某些字段查詢權限 grant ALL on testdb.* to developer@‘192.168.0.%‘ whit grant option; 授權指定用戶對指定數據創建,刪除,增加,更新權限,並且授權用戶可以為其他用戶授權(謹慎) grant usage on *.* to ‘hunk‘@‘192.168.0.1‘ require ssl; 強制用戶使用ssl連接 grant usage on *.* to ‘hunk‘@‘192.168.0.1‘ require none; 強制用戶使用ssl連接 EVOKE ALL ON *.* FROM ‘username‘@‘localhost‘; 回收指定用戶全部權限 EVOKE update ON *.* FROM ‘username‘@‘localhost‘; 回收指定用戶update權限 Show grants; 查看當前用戶(自己)權限 show grants for dba@localhost 查看其他用戶權限 設置用戶權限 grant select on legacy.* to mary@‘localhost‘ identified by ‘mary_password’; grant select,insert,update,delete on legacy.* to legacy@‘localhost‘ identified by ‘legacy_password’; grant select on legacy.* to report@‘localhost" identified by ‘report_password’; MySQL grant 權限,分別可以作用在多個層次上。 1. grant 作用在整個 MySQL 服務器 2. grant 作用在單個數據庫 3. grant 作用在單個數據表 4. grant 作用在表中的列 5. grant 作用在存儲過程、函數
權限列表: 權限 |
權限說明 |
---|---|
ALTER | 修改表和索引 |
CREATE | 刪除表中已有的記錄 |
DELETE | 創建數據庫和表 |
DROP | 拋棄(刪除)數據庫和表 |
INDEX | 創建或拋棄索引 |
INSERT | 向表中插入新行 |
SELECT | 查詢表中的記錄 |
UPDATE | 修改現存表記錄 |
EXECUTE | 執行權 |
FILE | 讀或寫服務器上的文件 |
PROCESS | 查看服務器中執行的線程信息或殺死線程 |
RELOAD | 重載授權表或清空日誌、主機緩存或表緩存 |
SHUTDOWN | 關閉服務器 |
ALL | 所有權限 |
USAGE | 當一個用戶被創建時,mysql會自動授予其usage權限。usage權限只能用於登錄數據,不能執行其他操作 |
重命名用戶
rename user 舊用戶名 to 新用戶名
修改用戶密碼
方法一:
/bin/mysqladmin -u root -p123456 password ‘新密碼‘
方法二:
登錄到mysql
set password for hunk2=password("hunk");
flush privileges;
方法三:
登錄到mysql
update mysql.user set password=password("1234567") where user=‘hunk‘;
flush privileges;
必須要刷新表權限。
在mysql5.7中,mysql.user表的password字段已經被更改為authentication_string字段
查詢當前mysql進程列表,可以查看登錄用戶
show processlist;
mysql(二)-用戶管理與權限