MySQL权限管理
来源:互联网 发布:ie11启用javascript 编辑:程序博客网 时间:2024/06/09 14:30
1. 创建用户
可以用两种方式创建MySQL账户:
- CREATE USER and GRANT
- 直接操作MySQL授权表
首选方法是使用帐户管理语句。因为这样更简洁,比直接操作MySQL授权表错误少。
- 创建用户 CREATE USER
CREATE USER语法:CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']
create user 用户名 IDENTIFIED BY '密码'; //默认% 可以从其他主机访问,但不能从本地访问create user '用户名'@'%' IDENTIFIED BY '密码'; //和上一句一样create user '用户名'@'localhost' IDENTIFIED BY '密码'; //只能主机访问
- 创建用户并设置权限
以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:
下面的示例使用CREATE USER和GRANT语句来设置四个帐户:
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost' -> WITH GRANT OPTION;mysql> CREATE USER 'finley'@'%' IDENTIFIED BY 'some_pass';mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%' -> WITH GRANT OPTION;mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass';mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';mysql> CREATE USER 'dummy'@'localhost';
其中两个账户有相同的用户名finley和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户
('finley'@'localhost')
只用于从本机连接时。另一个账户('finley'@'%')
主机部分使用'%'
通配符, 所以它可用于从其它主机连接。请注意finley的两个账户必须能从任何主机以finley连接。没有localhost账户,当finley从本机连接时,mysql_install_db
创建的localhost的匿名用户账户将占先。结果是,finley将被视为匿名用户。原因是匿名用户账户的Host列值比('finley'@'%')
账户更具体,这样在user表排序顺序中排在前面。一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行
mysqladmin reload
、mysqladmin refresh
和mysqladmin flush-xxx
命令,以及mysqladmin processlist
。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。- 用户dummy,没有密码(不安全,不推荐)。该账户只用于从本机连接。未授予权限。假定你将在以后将具体权限授予该账户。
下一个示例创建三个帐户,并授予它们访问特定数据库的权限。他们都具有用户名custom和密码obscure:
mysql> CREATE USER 'custom'@'localhost' IDENTIFIED BY 'obscure';mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON bankaccount.* -> TO 'custom'@'localhost';mysql> CREATE USER 'custom'@'host47.example.com' IDENTIFIED BY 'obscure';mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON expenses.* -> TO 'custom'@'host47.example.com';mysql> CREATE USER 'custom'@'%.example.com' IDENTIFIED BY 'obscure';mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON customer.* -> TO 'custom'@'%.example.com';
- 第一个帐户可以访问
bankaccount
数据库,但是只能从本地主机。 - 第二个帐户可以访问
expenses
数据库,但只能从host47.example.com
。 - 第三帐户可以访问
customer
数据库,从example.com
域的任何主机。因为使用了'%'
通配符,所以此帐户可以从域中的所有机器访问
2. 查看用户权限
mysql> SHOW GRANTS FOR 'admin'@'localhost';
3. 删除用户
mysql> DROP USER 'jeffrey'@'localhost';
4. 修改密码
root 修改其他用户
mysql> SET PASSWORD FOR -> 'jeffrey'@'localhost' = PASSWORD('mypass');
修改自己的密码
mysql> SET PASSWORD = PASSWORD('mypass');
你还可以在全局级别使用GRANT USAGE语句(ON *.*
)来指定某个账户的密码而不影响账户当前的权限:
mysql> GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
更改帐户密码从命令行使用mysqladmin命令
shell> mysqladmin -u user_name -h host_name password "new_password"
- mysql权限管理
- mysql权限管理
- mysql 权限管理
- mysql权限管理
- mysql权限管理
- mysql权限管理
- MySQL权限管理
- mysql 权限管理
- mysql 权限管理详解
- mysql 权限管理浅析
- mysql权限管理
- MySQL权限管理
- Mysql权限管理白皮书
- mysql的权限管理
- mysql权限管理
- mysql 权限管理
- MySQL 权限管理相关
- MySQL权限管理
- 5_Junit日志环境搭建
- 关于商业和创业的一点点思考
- mysql中大于等于某个年月,小于等于当前年月之间的所有年月的语句如何写呢
- R语言网页爬虫
- SQL:将多条记录的不同数据放入同一格中
- MySQL权限管理
- leetcode 72 edit distance
- CPSR_C ,CPSR_cxsf 详解
- 使用Apache POI中的XSSF导出Excel
- html-meta标签
- Redis源码阅读笔记—adlist
- Lua 基础之函数
- 05-条件语句
- Ubuntu14.04环境下opencv2.4.9的配置