在MySQL中,通过管理权限可以管理用户在MySQL服务器上的操作,如创建和删除数据库,创建和删除用户,以及授予和撤销用户的权限。
也可以只授予用户管理特定数据库和该数据库中的所有对象的权限。这包括对该数据库的所有表、视图、存储过程等的操作权限。
还可以只授予用户管理数据库中特定对象的权限,如表、视图、存储过程、函数等。这些权限可以应用于数据库中特定的对象、整个数据库或整个MySQL服务器。
要修改MySQL数据库中用户的权限,可以按照以下步骤进行操作:
- 登录到MySQL数据库。可以使用以下命令登录:
mysql -u username -p
其中,username
是您要登录的用户名。
- 查看当前的用户和其权限。可以使用以下命令:
SELECT user,host,authentication_string FROM mysql.user;
- 使用以下命令修改用户的权限:
GRANT privileges ON database_name.table_name TO 'user_name'@'host_name';
其中,privileges
是您要授予的权限,如SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES等。database_name
和table_name
是您要授权的数据库和表的名称。user_name
是您要授权的用户名。host_name
是该用户名所在的主机名或IP地址。
例如,如果您要授予用户myuser
在数据库mydatabase
中所有表的SELECT权限,并允许该用户从任何主机连接到MySQL服务器,则可以使用以下命令:
GRANT SELECT ON mydatabase.* TO 'myuser'@'%';
- 使用以下命令刷新MySQL的权限表以使更改生效:
FLUSH PRIVILEGES;
授予权限
要将特定数据库的所有权限授予用户,可以使用以下命令:
GRANT ALL ON example_database.* TO 'example_user'@'%';
该命令授予了用户example_user
对example_database
数据库中的所有对象的所有权限。%
表示该用户可以从任何主机连接到MySQL服务器。
要将特定数据库的所有权限授予用户,同时还允许用户将权限授予其他用户,可以使用以下命令:
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
该命令授予了用户example_user
对example_database
数据库中的所有对象的所有权限,并且还允许该用户将这些权限授予其他用户。%
表示该用户可以从任何主机连接到MySQL服务器。
该命令中的WITH GRANT OPTION
选项表示授予该用户将这些权限授予其他用户的权限。如果不想授予该用户此权限,请省略此选项。
要授予用户对数据库的只读权限,可以使用以下命令:
GRANT SELECT ON example_database TO 'example_user'@'%';
要仅授予用户对数据库中特定表的权限,可以使用以下命令:
GRANT SELECT ON example_database TO 'example_user'@'%';
GRANT INSERT ON example_database.example_table TO 'example_user'@'%';
授予用户example_user
对example_database
数据库中的特定表example_table
的SELECT
和INSERT
权限。
撤销权限
要撤销用户的权限,请使用revoke
命令语法。例如,要撤销对特定数据库的所有权限,请使用以下命令:
REVOKE ALL ON example_database FROM 'example_user'@'%';
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/mysql/how-to-modify-user-privileges-in-mysql/