【資料庫】MySQL/MariaDB 資料庫使用者帳號管理語法教學與範例

本文會列出MySQL/MariaDB在使用者帳號管理時,會用到的一些語法及範例,包含登入帳號、查看帳號、新增帳號、設定權限、修改密碼、刪除帳號。

1 資料庫中的帳號表示

在建立帳號時,通常使用[帳號名稱]@[HOST]格式來表示。
'root'@'localhost': 表示從localhost使用root帳號登入
'root'@'192.168.0.1': 表示從192.168.0.1使用root帳號登入
'root'@'%': 表示從任何地方使用root帳號登入
我們可以針對同一個帳號,的不同登入來源給予不同的權限。

2 登入帳號

        
            // 登入本機資料庫
            $ mysql -u [帳號] -p
            Enter password: [輸入密碼]

            // 登入遠端資料庫
            $ mysql -h [遠端IP] -P [遠端PORT] -u [帳號] -p
            Enter password: [輸入密碼]

            // 登入並指定要使用的資料庫
            $ mysql -D [資料庫名稱] -u [帳號] -p
            Enter password: [輸入密碼]
        
    

3 查看帳號

        
            -- 列出所有帳號
            SELECT user,host FROM mysql.user;

            -- 列出指定 root@localhost 的權限
            SHOW GRANTS FOR 'root'@'localhost';
        
    

4 新增帳號

        
            -- 建立root@localhost帳號,設定密碼為123456
            CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
        
    

5 設定權限

        
            -- 授與使用所有資料庫的所有權限
            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;
        
    

6 修改密碼

        
            -- 方法一: 修改密碼
            SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

            -- 方法二: 修改密碼
            ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

            -- 更新系統權限表
            FLUSH PRIVILEGES;
        
    

7 刪除帳號

        
            -- 撤銷所有權限
            REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'root'@'localhost';

            -- 更新系統權限表
            FLUSH PRIVILEGES;

            -- 移除帳號
            DROP USER 'root'@'localhost';
        
    

Facebook 留言