1、创建数据库用户
MySQL安装好了以后,使用root用户登录MySQL,我们使用create user方法创建用户,如下:
创建了一个用户名为neiwang,密码为1234qwer的用户,他只能在ip为172.17.22.*的网段登录MySQL服务器,这样的方法可以指定哪个IP可以用哪个用户登录MySQL。
2、权限分配
创建好用户以后,我们要对这些用户进行授权,它才能够进行相应的数据库操作。使用grant进行授权,具体的权限列表如下:
权限 |
权限级别 |
权限说明 |
CREATE |
数据库、表或索引 |
创建数据库、表或索引权限 |
DROP |
数据库或表 |
删除数据库或表权限 |
GRANT OPTION |
数据库、表或保存的程序 |
赋予权限选项 |
REFERENCES |
数据库或表 |
|
ALTER |
表 |
更改表,比如添加字段、索引等 |
DELETE |
表 |
删除数据权限 |
INDEX |
表 |
索引权限 |
INSERT |
表 |
插入权限 |
SELECT |
表 |
查询权限 |
UPDATE |
表 |
更新权限 |
CREATE VIEW |
视图 |
创建视图权限 |
SHOW VIEW |
视图 |
查看视图权限 |
ALTER ROUTINE |
存储过程 |
更改存储过程权限 |
CREATE ROUTINE |
存储过程 |
创建存储过程权限 |
EXECUTE |
存储过程 |
执行存储过程权限 |
FILE |
服务器主机上的文件访问 |
文件访问权限 |
CREATE TEMPORARY TABLES |
服务器管理 |
创建临时表权限 |
LOCK TABLES |
服务器管理 |
锁表权限 |
CREATE USER |
服务器管理 |
创建用户权限 |
PROCESS |
服务器管理 |
查看进程权限 |
RELOAD |
服务器管理 |
执行flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, reload等命令的权限 |
REPLICATION CLIENT |
服务器管理 |
复制权限 |
REPLICATION SLAVE |
服务器管理 |
复制权限 |
SHOW DATABASES |
服务器管理 |
查看数据库权限 |
SHUTDOWN |
服务器管理 |
关闭数据库权限 |
SUPER |
服务器管理 |
执行kill线程权限 |
具体的授权语法,比如我们现在服务器上有一个叫做test数据库,我们要把这个数据库的所有表的查增删改的权限赋予刚才创建的neiwang用户:
GRANT USAGE,SELECT,INSERT,UPDATE,DELETE ON `test`.* TO 'neiwang'@'172.17.16.%';
授权以后,我们可以用SHOW GRANTS命令来查看该用户的权限,如下:
同理,如果要将创建表,执行存储过程等权限赋予给neiwang用户,则我们使用语法:
GRANT USAGE,CREATE TEMPORARY TABLES,EXECUTE ON `test`.* TO 'neiwang'@'172.17.16.%';
如果要把某个库的所有权限赋予给neiwang用户,还可以使用如下方法:
GRANT ALL PRIVILEGES ON `test`.* TO 'neiwang'@'172.17.16.%' WITH GRANT OPTION
FLUSH PRIVILEGES;
"WITH GRANT OPTION" 表示该用户可以为其他用户分配权限。
FLUSH PRIVILEGES用于刷新权限,使刚赋予的权限立即生效。
3、回收权限
REVOKE DELETE ON test.* FROM 'neiwang'@'172.17.16.%';
4、删除数据库用户
DROP USER 'neiwang'@'172.17.16.%';
角色和权限管理还可以参考相关博文:
http://blog.chinaunix.net/uid-20639775-id-3249105.html
http://my.oschina.net/huxuanhui/blog/23784?fromerr=Asp7GXtt
来源:oschina
链接:https://my.oschina.net/u/730579/blog/632181