煮酒听雨
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册
MySQL数据库用户权限
编辑时间:2019-05-04
编辑:忘尘
阅读:467
####查看数据库用户权限 ```sql mysql> show grants for 用户名; ``` ####查看已经授权给用户权限信息命令: show grants for 'user'@'host' ``` mysql> show grants for 'www'@'localhost'; ``` ####查看创建用户的语句 ``` show create user 'user'@'host' ``` <hr> ####创建及给用户授权命令 Mysql用户创建可以通过create user/grant命令创建,也可以通过insert语句直接操作MySQL系统权限表来创建。创建用户及给用户授权的用户名`user`和主机`host`部分由两部分组成,分别为用户名和登录主机名,格式为'user'@'host',`host`字段可以使用主机名或者ip地址,允许使用`%`和`_`字符进行匹配。 ######使用CREATE创建用户: ```sql CREATE USER user@'host' IDENTIFIED BY 'password' ``` ######使用GRANT用户授权: ```sql GRANT permission ON database.tables TO user@'host' ``` ######使用GRANT命令建立新用户、设定用户密码、并分配权限: ``` mysql> GRANT <privileges> ON <what> TO <user> [IDENTIFIED BY "<password>"] [WITH GRANT OPTION]; # privileges是一个用逗号分隔的你想要赋予的MySQL用户权限的列表 # what 表示数据库表database.tables。如*.*表示所有库的所有表,也可以特定分配某个库或某个表 # user 表示user@host。如'www'@'localhost' 表示创建的用户名www ,@后面表示允许访问数据的客户端,'localhost' 表示本机,'%'表示所有主机,也可以特指定ip #若要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH GRANT OPTION选项 (让该授权的用户,也可以将它的权限赋予给其他用户,此种授权方法并不提倡,权限最好是在DBA的手中,为了安全及方便管理) ``` ######收回用户权限 ```sql mysql> revoke permission on 'database'.'tables' from user@'host' ``` 示例 ``` # 收回www的select 权限 revoke select on *.* from www@'192.168.%.%'; ``` 指定的权限可以分为三种类型: - 数据库/数据表/数据列权限: Alter: 修改已存在的数据表(例如增加/删除列)和索引。 Create: 建立新的数据库或数据表。 Delete: 删除表的记录。 Drop: 删除数据表或数据库。 INDEX: 建立或删除索引。 Insert: 增加表的记录。 Select: 显示/搜索表的记录。 Update: 修改表中已存在的记录。 - 全局管理MySQL用户权限: file: 在MySQL服务器上读写文件。 PROCESS: 显示或杀死属于其它用户的服务线程。 RELOAD: 重载访问控制表,刷新日志等。 SHUTDOWN: 关闭MySQL服务。 - 特别的权限: ALL: 允许做任何事(和root一样)。 USAGE: 只允许登录--其它什么也不允许做。 #####示例: 1、创建用户www并授予本地登录所有库表所有权限 ```sql mysql>create user 'www'@'localhost' identified by 'xx123456'; mysql>grant all privileges on *.* to 'www'@'localhost' with grant option; ``` 2、创建用户www并允许通过192.168.0.0段ip地址登录,分配增删改查跟数据库web的权限 ```sql mysql> grant select,insert,update,delete,create,drop on web.* to 'www'@'192.168.%.%' identified by 'xx123456'; ``` 3、给www用户授权可以通过192.168.0.0段地址登录 ```sql mysql> grant all on *.* to www@'192.168.%.%'; ``` 4、收回用户www远程登录weby库表的drop权限 ``` mysql> revoke drop on web.* from www@'192.168.%.%'; ``` ###设置(修改)用户密码 >mysql同一个账号可创建多个密码或者不同权限,精确匹配优先 1、修改其他用户密码(当前用户要有权限),一般在root用户下操作, 登录mysql后的修改命令 ```sql Alter user 'user'@'host' identified by 'newpassword' #或 Set password for 'user'@'host' =password('newpassword') ``` 示例 ```sql # MySQL版本5.7.6版本开始的用户可以使用如下命令: # 修改www本地登录的密码为www123456 mysql> alter user 'www'@'localhost' identified by 'www123456'; #MySQL版本5.7.6版本以前用户可以使用如下命令 # 修改www远程登录密码为www123456 mysql> set password for 'www'@'192.168.%.%'=password('www123456'); #修改表 mysql> use mysql; mysql> UPDATE user SET password=PASSWORD('新密码') WHERE user='用户'; mysql> flush privileges; ``` 2、在系统命令行下修改: ```linux mysqladmin –u user –h host password 'newpassword' ``` 3、修改当前用户密码 ``` alter user user() identified by 'newpassword' #或 set password=password('newpassword') ``` 示例 ```sql #修改当前登录的www的密码 mysql> alter user user() identified by 'www1478596'; ``` ###mysql用户删除 ```sql drop user 'user'@'host' ``` 示例 ``` # 删除用户www远程登录 mysql> drop user 'www'@'192.168.%.%'; # 查看删除后的用户 mysql> select user,host from mysql.user; ``` ###用户的锁定与解锁 ``` #锁定 Alter user 'user'@'host' account lock #解锁 Alter user 'user'@'host' account unlock ``` 示例 ``` # 锁定用户www mysql> alter user 'www'@'localhost' account lock; # 解锁用户www mysql> alter user 'www'@'localhost' account unlock; ```
来说两句吧
提交评论
最新评论
我的标签
函数
面试
REDIS
LNMP
验证
时间
JS
LINUX
CPA
常量
MYSQL
备份
微信
文件
压缩
优化
SVN
PHP
集合
数组
HTML
NGINX
日志
性能
加密
下载
FORM
WEB
样式
SQL
表单
配置
编码
ARRAY
替换
截取
密码
版本
进程
定时
测试
事务
数据
权限
安全
防火墙
索引
设计模式
缓存
热文排行
LNMP状态管理命令
navicat for mysql 导入xlsx,
(置顶)开发中常用功能知识点笔记
(置顶)收藏优秀分享文章集合
PHP加密解密算法(Discuz!经典代码)
PHP 获取数组第一个元素或最后一个值
Nginx配置 nginx.conf 文件中常用配
MySQL错误日志 [Warning] IP ad
Redis持久化:快照(RDB)和AOF简解
浅析SQLmap
随机文章
友情链接
官方手册
thinkphp
php扩展
Linux命令
lnmp
PHP中文网
鸟哥Linux私房
Nginx中文文档
json格式化
Redis手册
composer中文文档
CentOS下载
流程图
VPN代理
菜鸟网
奇淼教程
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册