用戶相關命令
命令 | 描述 |
---|---|
CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’; | 創建用戶。 |
GRANT ALL PRIVILEGES ON database_name.* TO ‘test_user’@‘%’; | 給用戶授權所有權限。 |
GRANT SELECT, INSERT, UPDATE ON database_name.* TO ‘test_user’@‘%’; | 給用戶授權指定權限。 |
SHOW GRANTS FOR ‘test_user’@‘%’; | 查看用戶權限。 |
DROP USER ‘test_user’@‘%’; | 刪除用戶。 |
1. 創建用戶
-
Sql:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:要創建的用戶名。
- host:允許用戶連接的主機。可以使用 % 表示允許從任意主機連接,或者指定具體的 IP 地址或主機名。
- password:用戶的密碼。
-
案例:創建用戶fenghx,并只允許該用戶從本地訪問數據庫
obclient [oceanbase]> CREATE USER 'testuser'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.206 sec)obclient [oceanbase]>
2. 為用戶授予權限
創建用戶后,通常需要為用戶授予權限。可以使用 GRANT 語句為用戶授予權限。
授予所有權限
- Sql:
GRANT ALL PRIVILEGES ON database_name.* TO 'test_user'@'%';FLUSH PRIVILEGES;
- 將 database_name 替換為具體的數據庫名稱。
- ALL PRIVILEGES 表示授予所有權限。
- FLUSH PRIVILEGES 用于刷新權限,使更改立即生效。
授予特定權限
- Sql:
GRANT SELECT, INSERT, UPDATE ON database_name.* TO 'test_user'@'%';FLUSH PRIVILEGES;
- 授予用戶 SELECT、INSERT 和 UPDATE 權限。
查看用戶權限
創建用戶并授予權限后,可以通過以下 SQL 查詢查看用戶的權限。
- Sql:
SHOW GRANTS FOR 'test_user'@'%';
- 該查詢會返回用戶 test_user 的權限信息。
9. 刪除用戶
如果需要刪除用戶,可以使用 DROP USER 語句。
DROP USER 'test_user'@'%';
其他
1. 查詢當前用戶返回root@%,這個%符號是什么意思
obclient [oceanbase]> select CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| root@% |
+----------------+
1 row in set (0.001 sec)obclient [oceanbase]>
在數據庫(如 MySQL、OceanBase 等)中,root@% 表示一個用戶名為 root 的用戶,且其訪問權限適用于 所有主機(即 % 是通配符,表示任意主機)。
1. root@% 的含義
- root:用戶名。
- %:主機名通配符,表示允許從任何主機連接到數據庫。
例如:
- root@% 表示用戶 root 可以從任何主機連接到數據庫。
- root@localhost 表示用戶 root 只能從本地主機(localhost)連接到數據庫。
- root@192.168.1.100 表示用戶 root 只能從 IP 地址為 192.168.1.100 的主機連接到數據庫。
2. 為什么需要 % 通配符?
在數據庫權限管理中,用戶權限通常與用戶名和主機名綁定。% 通配符的作用是允許用戶從任意主機訪問數據庫,這在以下場景中非常有用:
- 遠程訪問數據庫。
- 在分布式系統中,多個節點需要連接到同一個數據庫。
2. 查看用戶登錄權限
在 MySQL 或 OceanBase 中,可以通過以下 SQL 查詢查看用戶及其主機權限:
- 查詢用戶權限
SELECT user, host FROM mysql.user; # 該查詢會返回所有用戶及其允許訪問的主機。
obclient [oceanbase]> SELECT user, host FROM mysql.user;
+-------------+------+
| user | host |
+-------------+------+
| root | % |
| proxyro | % |
| ocp_monitor | % |
+-------------+------+
3 rows in set (0.008 sec)obclient [oceanbase]>
以上就是本次的分享,感謝閱讀。
上一章:《OceanBase數據庫-學習筆記4-租戶》
下一章:《OceanBase數據庫-學習筆記6-查詢小技巧》