資料控制語言(Data Control Language) 是用來設定或變更資料庫使用者或角色權限的語句.
描述 | |
---|---|
適用於一個給定伺服器中的所有資料庫. 這些權限儲存在mysql. user 表中 | |
適用於一個給定資料庫中的所有目標. 這些權限儲存在mysql.db 和mysql.host 表中 | |
適用於一個給定表格中所有的欄位. 這些權限儲存在mysql.tables_priv 表中 | |
使用於一個給定表中的單一欄位. 這些權限儲存在mysql.columns_priv 表中 | |
CREATE ROUTINE , ALTER ROUTINE, EXECUTE 和GRANT 權限適用於已儲存的子程式. 這些權限可以被授予為全域層級和資料庫層級 |
描述 | |
---|---|
使用者權限表, 記錄帳號, 密碼及全域權限資訊 | |
記錄資料庫相關權限 | |
使用者對某個表格擁有的權限 | |
使用者對某表某個列所擁有的權限 | |
##使用者對預存程序及儲存函數的操作權限 |
查看所有用戶:
建立使用者
表示允許任何地方的主機遠端登入MySQL 資料庫.格式:
範例:
<?php $conn = mysqli_connect("localhost", "root","admin","mysql"); if ($conn) { echo "数据库连接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "CREATE USER 'user1'@'%' IDENTIFIED BY '123456'"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 关闭连接 mysqli_close($conn); ?>
效果:
##刪除用戶
格式:DROP USER '使用者名稱‘[@'主機名稱']
修改密碼格式:範例:
<?php $conn = mysqli_connect("localhost", "root","admin","mysql"); if ($conn) { echo "数据库连接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "DROP USER 'user1'@'%'"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 关闭连接 mysqli_close($conn); ?>登入後複製
ALTER USER '使用者名稱'@'主機名稱' IDENTIFIED BY '新密碼';
權限管理MySQL 使用範例:
<?php $conn = mysqli_connect("localhost", "root","admin","mysql"); if ($conn) { echo "数据库连接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 关闭连接 mysqli_close($conn); ?>登入後複製
REVOKE 授權, 撤銷授權. 權限具體分為3 類別, 資料類別, 結構類別, 和管理類別.
#管理 | ||
---|---|---|
DELETE FILE #CREATE ALTER | INDEXDROP CREATE TEMPORARY TABLES SHOW VIEW CREATE ROUTINE ALTER ROUTINE EXECUTE CREATE VIEW EVENT TRIGGER USAGE GRANT | SUPERPROCESS RELOAD SHUTDOWN SHOW DATABASES LOCK TABLES REFERENCES REPUCATION CUENT REPUCATION SLAVE CREATE USER | #