MySQL 5.7查看用戶及授權(quán)信息
在MySQL 5.7中,可以通過(guò)以下方法查看用戶及其授權(quán)信息。
查看所有用戶
要查看MySQL中所有的用戶,可以使用以下命令:
mysql>SELECT User FROM mysql.user;
這將返回所有用戶的名稱。
查看用戶的權(quán)限
要查看特定用戶的權(quán)限,可以使用以下命令:
mysql>SHOW GRANTS FOR 'username'@'localhost';
其中,username
是要查看權(quán)限的用戶名,localhost
是該用戶連接到MySQL的主機(jī)。
查看所有用戶的權(quán)限
要查看所有用戶的權(quán)限,可以使用以下命令:
mysql>SELECT DISTINCT CONCAT(user, '@', host) AS userhost, FORMAT_PRIVILEGE(privilege_type) AS privilege FROM mysql.user JOIN mysql.db ON (mysql.user.User = mysql.db.User) WHERE mysql.db.Db = 'database_name';
其中,database_name
是要查看權(quán)限的數(shù)據(jù)庫(kù)名稱。
這將返回類似于以下內(nèi)容的列表:
+----------------+------------------------+ | userhost | privilege | +----------------+------------------------+ | admin@localhost | SELECT, INSERT, UPDATE | | user@localhost | SELECT, INSERT | +----------------+------------------------+
授予用戶權(quán)限
要授予特定用戶特定權(quán)限,可以使用以下命令:
mysql>GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
其中,database_name
是要授予權(quán)限的數(shù)據(jù)庫(kù)名稱,username
是要授權(quán)的用戶名,localhost
是該用戶連接到MySQL的主機(jī)。這將授予該用戶對(duì)該數(shù)據(jù)庫(kù)中的所有表的所有權(quán)限。
如果要分別授予不同的權(quán)限,可以將ALL PRIVILEGES
替換為其他權(quán)限,例如:
mysql>GRANT SELECT, INSERT, UPDATE ON database_name.* TO 'username'@'localhost';
這將授予該用戶對(duì)該數(shù)據(jù)庫(kù)中的所有表的SELECT、INSERT和UPDATE權(quán)限。
回收用戶權(quán)限
要回收特定用戶的特定權(quán)限,可以使用以下命令:
mysql>REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';
其中,database_name
是要回收權(quán)限的數(shù)據(jù)庫(kù)名稱,username
是要回收權(quán)限的用戶名,localhost
是該用戶連接到MySQL的主機(jī)。
如果要分別回收不同的權(quán)限,可以將ALL PRIVILEGES
替換為其他權(quán)限,例如:
mysql>REVOKE SELECT, INSERT, UPDATE ON database_name.* FROM 'username'@'localhost';
這將回收該用戶對(duì)該數(shù)據(jù)庫(kù)中的所有表的SELECT、INSERT和UPDATE權(quán)限。