MySql用户权限控制 【转】

来源:互联网 发布:arpu值算法 编辑:程序博客网 时间:2024/06/01 12:13

文章来源:MySql用户权限控制


查看用户的权限可以用

SHOW GRANTS FOR user_name;

如果显示为:GRANT USAGE ON *.* TO 'user_name'@'%' 则表示无任何权限!!!!   前面一个*表示任意数据库,后面一个表示数据库里的任意表

注意:用户必须具有GRANT OPTION权限才能使用GRANT和INVOKE为别的用户赋予或者撤销权限

例子:赋予SELECT权限

GRANT SELECT ON testdb.* TO user_name;  表示将对testdb数据库下的所有表的SELECT权限赋予user_name用户.

撤销权限:

REVOKE SELECT ON testdb.* FROM user_name; 表示将用户对testdb数据库中所有表的SELECT权限撤销.

可以一次写多个如:GRANT SELECT, INSERT ON testdb.* TO user_name;


MySql的权限如下表所示:

ALL除GRANT OPTION外的所有权限ALTER使用ALTER TABLEALTER ROUTING使用ALTER PROCEDURE和DROP PROCEDURECREATE使用CREATE TABLECREATE ROUTING使用CREATE PROCEDURECREATE TEMPORARY TABLES使用CREATE TEMPORARY TABLECREATE USER使用CREATE USER、DROP USER、RENAME USER和REVOKE ALL PRIVILLEAGESCREATE VIEW使用CREATE VIEWDELETE使用DELETEDROP使用DROP TABLEEXECUTE使用CALL和存储过程FILE使用SELECT INTO OUTFILE和LOAD DATA INFILEGRANT OPTION使用GRANT和REVOKEINDEX使用CREATE INDEX和DROP INDEXINSERT使用INSERTLOCK TABLES使用LOCK TABLESPROCESS使用SHOW FULL PROCESSLISTRELOAD使用FFLUSHREPLICATION CLIENT服务器位置的访问REPLICATION SLAVE由复制从属使用SELECT使用SELECTSHOW DATABASES使用SHOW DATABASESSHOW VIEW使用SHOW CREATE VIEWSHUTDOWN使用mysqladmin shutdown(用来关闭MySQL)SUPER使用CHANGE MASTER、KILL、LOGS、PURGE、MASTER和SET GLOBAL。还允许mysqladmin调试登录UPDATE使用UPDATEUSAGE无访问权限

[sql] view plain copy
  1.   

更改口令

SET PASSWORD FOR user_name = PASSWORD('new_password');

或者SET PASSWORD = PASSWORD('new_password');   这个是更改自己的口令



GRANT和REVOKE可以在几个层次上控制访问权限:

整个服务器,使用GRANT ALL和REVOKE ALL;

整个数据库,使用ON database.*;

特定的表,使用ON database.table;

特定的列     ,不知道

特定的存储过程, 不知道



补充一点,

我们在linux系统下直接输入mysql时,会以本地匿名账号登陆,即''@localhost

而这个账户一开始没权限即USAGE *.* ,,所以很多时候操作都不成功。

这时我们如果只是学习的话,可以首先用root登陆即mysql -u root -p  <CR>然后输入root密码(也可以没有密码,则不加-p)

然后GRANT ALL ON *.*  FOR  ''@localhost;

这样即可。




原创粉丝点击