查看用户权限
show grants for你的用户
show grants for root@'localhost';
show grants for current_user();查看当前登陆用户的权限
取消用户权限
REVOKE privileges (columns) ON what FROM user
REVOKE语句只删除权限,而不删除用户。即使你撤销了所有权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须用一条Delete语句明确从user表中删除用户记录:
%mysql -u root mysql
mysql>Delete FROM user Where User="user_name" and Host="host_name";
mysql>FLUSH PRIVILEGES;
用GRANT、REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到。如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则改变将不生效,除非你重启服务器。当服务器注意到授权表被改变了时,现存的客户连接有如下影响:
· 表和列权限在客户的下一次请求时生效。
· 数据库权限改变在下一个USE db_name命令生效。
全局权限的改变和口令改变在下一次客户连接时生效。
Delete语句删除用户记录,而FLUSH语句告诉服务器重载授权表。(当你使用GRANT和REVOKE语句时,表自动重载,而你直接修改授权表时不是。)
CREATE和REVOKE语句影响4个表:
授权表内容
user能连接服务器的用户以及他们拥有的任何全局权限
db数据库级权限
tables_priv表级权限
columns_priv列级权限
还有第5个授权表(host),但它不受GRANT和REVOKE的影响。
show grants for你的用户
show grants for root@'localhost';
show grants for current_user();查看当前登陆用户的权限
取消用户权限
REVOKE privileges (columns) ON what FROM user
REVOKE语句只删除权限,而不删除用户。即使你撤销了所有权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须用一条Delete语句明确从user表中删除用户记录:
%mysql -u root mysql
mysql>Delete FROM user Where User="user_name" and Host="host_name";
mysql>FLUSH PRIVILEGES;
用GRANT、REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到。如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则改变将不生效,除非你重启服务器。当服务器注意到授权表被改变了时,现存的客户连接有如下影响:
· 表和列权限在客户的下一次请求时生效。
· 数据库权限改变在下一个USE db_name命令生效。
全局权限的改变和口令改变在下一次客户连接时生效。
Delete语句删除用户记录,而FLUSH语句告诉服务器重载授权表。(当你使用GRANT和REVOKE语句时,表自动重载,而你直接修改授权表时不是。)
CREATE和REVOKE语句影响4个表:
授权表内容
user能连接服务器的用户以及他们拥有的任何全局权限
db数据库级权限
tables_priv表级权限
columns_priv列级权限
还有第5个授权表(host),但它不受GRANT和REVOKE的影响。