【數學問題】力扣204:計數質數(未完)
總結自:MySQL Crash Course(MySQL必知必會)
https://e.jd.com/30154378.html?ebook=1
MySQL-使用者管理
mysql> use mysql; mysql> select user from user; mysql> select user from user; +------------------+ | user | +------------------+ | mysql.infoschema | | mysql.session | | mysql.sys | | root | +------------------+ 4 rows in set (0.00 sec)
mysql
資料庫有一個 user
表,包含所有使用者賬號。user 表有一個 user 列,用來儲存使用者登陸名。
@
目錄1. 建立使用者賬號
使用 CREATE USER (USER) IDENTIFIED BY (PASSWORD)
語句:
mysql> create user ben identified by 'mysql'; mysql> select user from user; +------------------+ | user | +------------------+ | ben | | mysql.infoschema | | mysql.session | | mysql.sys | | root | +------------------+ 5 rows in set (0.00 sec)
GRANT 和 INSERT 也能建立使用者,但是不建議直接對使用者表進行插入操作。
重新命名使用者賬號,使用 RENAME USER (USER) TO (NEW)
語句:
mysql> rename user ben to pineapple; Query OK, 0 rows affected (0.11 sec) mysql> select user from user; +------------------+ | user | +------------------+ | pineapple | | mysql.infoschema | | mysql.session | | mysql.sys | | root | +------------------+ 5 rows in set (0.00 sec)
2. 刪除使用者賬號
刪除使用者賬號使用DROP USER (USER)
語句:
mysql> drop user pineapple;
Query OK, 0 rows affected (0.08 sec)
mysql> select user from user;
+------------------+
| user |
+------------------+
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| root |
+------------------+
4 rows in set (0.00 sec)
注意:mysql5之後的版本使用 DROP USER 可以同時刪除賬號與賬號許可權
3. 設定訪問許可權
新建立的使用者沒有任何許可權,能登入資料庫,但看不到任何資料,執行不了任何操作
mysql> create user pineapple identified by 'mysql';
Query OK, 0 rows affected (0.13 sec)
mysql> show grants for pineapple;
+---------------------------------------+
| Grants for pineapple@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO `pineapple`@`%` |
+---------------------------------------+
1 row in set (0.00 sec)
結果顯示 pineapple 使用者有一個許可權:USAGE ON \*.*
,表示沒有許可權。
為了設定許可權,可以使用 GRANT
語句,它要求至少有以下資訊
- 要授予的許可權
- 被授予訪問許可權的資料庫和表
- 使用者名稱
舉個例子:
mysql> create database demo;
Query OK, 1 row affected (0.15 sec)
mysql> grant select on demo.* to pineapple;
Query OK, 0 rows affected (0.12 sec)
mysql> show grants for pineapple;
+---------------------------------------------+
| Grants for pineapple@% |
+---------------------------------------------+
| GRANT USAGE ON *.* TO `pineapple`@`%` |
| GRANT SELECT ON `demo`.* TO `pineapple`@`%` |
+---------------------------------------------+
2 rows in set (0.00 sec)
此 GRANT 表示:允許使用者 pineapple 在資料庫demo下的所有表使用select查詢語句,也就是隻有訪問許可權。
GRANT 的反操作為 REVOKE
,用來撤銷使用者的特定許可權。
mysql> revoke select on demo.* from pineapple;
Query OK, 0 rows affected (0.10 sec)
mysql> show grants for pineapple;
+---------------------------------------+
| Grants for pineapple@% |
+---------------------------------------+
| GRANT USAGE ON *.* TO `pineapple`@`%` |
+---------------------------------------+
1 row in set (0.00 sec)
注意:
GRANT TO
REVOKE FROM
GRANT 和 REVOKE 可以在幾個層次上控制訪問許可權
- 整個伺服器,使用 GRANT ALL 和 REVOKE ALL
- 整個資料庫,使用 ON database.*
- 特定的表,使用 On database.table
- 特定的列
- 特定的儲存過程
4. 更改使用者口令
為了更改使用者口令,可以使用 SET PASSWORD FOR USER = PASSWORD('PASSWORD')
set password for pineapple = Password('Password$123');
注意:
新密碼必須傳到
Password()
函式進行加密MySQL8版本使用 `ALTER USER 'USER'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'PASSWORD':
alter user 'pineapple'@'%' identified with MYSQL_NATIVE_PASSWORD BY 'Password$123';
總結自:MySQL Crash Course(MySQL必知必會)
https://e.jd.com/30154378.html?ebook=1