MySQL / MariaDB 資料庫使用者帳號管理 SQL 語法教學與範例
資料庫本文會列出 MySQL / MariaDB 在使用者帳號管理時,會用到的一些 SQL 語法及範例,包含登入帳號、查看帳號、新增帳號、設定權限、修改密碼、刪除帳號。
資料庫中的帳號表示
在建立帳號時,使用[帳號名稱]@[HOST]格式來表示。
'root'@'localhost':表示從 localhost 使用 root 帳號登入
'root'@'192.168.0.1':表示從 192.168.0.1 使用 root 帳號登入
'root'@'%':表示從任何地方使用 root 帳號登入
我們可以針對同一個帳號,的不同登入來源給予不同的權限。
登入帳號
// 登入本機資料庫
$ mysql -u [帳號] -p
Enter password: [輸入密碼]
// 登入遠端資料庫
$ mysql -h [遠端IP] -P [遠端PORT] -u [帳號] -p
Enter password: [輸入密碼]
// 登入並指定要使用的資料庫
$ mysql -D [資料庫名稱] -u [帳號] -p
Enter password: [輸入密碼]
查看帳號
-- 列出所有帳號
SELECT user,host FROM mysql.user;
-- 列出指定 root@localhost 的權限
SHOW GRANTS FOR 'root'@'localhost';
新增帳號
-- 建立 root@localhost 帳號,設定密碼為 123456
CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
設定權限
-- 授與使用所有資料庫的所有權限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
-- 授與使用 testDB 資料庫的所有權限
GRANT ALL PRIVILEGES ON testDB.* TO 'root'@'localhost' WITH GRANT OPTION;
-- 授與使用 testDB 資料庫的 SELECT、INSERT、UPDATE、DELETE 權限
GRANT SELECT, INSERT, UPDATE, DELETE ON testDB.* TO 'root'@'localhost';
-- 建立 root@localhost 帳號,設定密碼為 123456
-- 授與使用所有資料庫的所有權限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
-- 更新權限時,可以先移除所有權限,在授與必要的權限
REVOKE ALL PRIVILEGES ON testDB.* FROM 'root'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON testDB.* TO 'root'@'localhost';
-- 更新完權限,更新系統權限表
FLUSH PRIVILEGES;
修改密碼
-- 方法一: 修改密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
-- 方法二: 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 更新系統權限表
FLUSH PRIVILEGES;
刪除帳號
-- 撤銷所有權限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'root'@'localhost';
-- 更新系統權限表
FLUSH PRIVILEGES;
-- 移除帳號
DROP USER 'root'@'localhost';
熱門文章
最新文章
0 則留言