mysql新建数据库、新建用户及授权操作
1、创建数据库
create database if not exists test176 default charset utf8 collate utf8_general_ci;
#utf8_general_cs 大小写敏感
#如果数据库test176不存在,则创建数据库test76;charset utf8 字符集默认utf8,collate utf8_general_ci 大小写不敏感
2、创建用户
create user 'username'@'ip' identified by 'password' #创建用户名username,密码为password的用户,只能在该IP电脑上登录
create user 'username'@'localhost' identified by 'password' #创建用户名username,密码为password的用户,只能本地登录
create user 'username'@'%' identified by 'password' #创建用户名username,密码为password的用户,无IP限制
create user 'username'@'%' identified by - #创建密码为空的用户,不用密码可以登录
示例:
create user 'test'@'%' identified by 'ios' #创建用户名为test,密码为ios的用户
3、查看执行的用户是否有放开授权的权限
select host,user,password,Grant_priv,Super_priv from mysql.user; #查看所有用户是否有授权的权限
#给root用户放开授权的权限并提交刷新生效,客户端执行的话,执行后要重新打开一个客户端才能开始授权
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES; #提交刷新权限
4、用户授权
grant privileges on databasename.tablename to 'username'@'host' #给用户授权,授权后的用户无给其他用户授权的权限
或者
grant privileges on databasename.tablename to 'username'@'host' with grant option; #授权后的用户有给其他用户授权的权限
#privileges表示权限,如select,insert,update,delete,alter,drop,create,all
#databasename.tablename 表示授权的数据库名和表名,也可以是#databasename.*(所有表)或者*.*(所有库的所有表)
示例:
grant select,insert,update,delete,create,drop,alter on localmysql.* to 'test'@'%' #%表示所有可登录的ip
#把数据库localmysql所有表的增删改查权限赋给test,不限制登录ip
grant select,insert,update on localmysql.* to 'test'@'%' with grant option;
#with grant option表示授权后的用户能授权其他用户
grant select on localmysql.* to 'test'@'%' #%表示所有可登录的ip,表示只赋查询的权限给test用户
grant all on *.* to 'test'@'%' #表示把所有数据库和表的所有操作权限赋权给test
#all是所有权限,*.*是所有数据库和表,test表示数据库用户,%表示不限登录IP
注意:用以上命令授权的用户无权限给其它用户授权,如果想让该用户可以授权,用以下命令:
grant privileges on databasename.tablename to 'username'@'host' WITH GRANT OPTION;
示例:
grant all on *.* to 'test'@'%' with grant option; #授权后,用户test也有权限授权给其他用户权限
5、修改用户名或者用户密码
修改用户名:
update mysql.user set user='testing' where user='test';
FLUSH PRIVILEGES;
#修改非当前登录用户密码
set password for 'username'@'ip'=password('newpassword');
FLUSH PRIVILEGES;
示例:
set password for 'iosgd'@'%'=password('ios'); #把用户iosgd的密码修改为ios
FLUSH PRIVILEGES;
#修改当前登录用户密码
set password=password('newpassword');
示例:
set password=password('abc123'); #把当前登录的用户密码修改为abc123
6、撤销用户权限:
revoke privileges on databasename.tablename from 'username'@'host' #与授权是一样
示例:
revoke update,delete on localmysql.* from 'test'@'%'; #表示撤销test用户localmysql数据库所有表的修改、删除权限
revoke all on *.* from 'test'@'%' ; #表示撤销test用户所有数据库、表的所有操作权限
注意点:给用户授权了select某个数据库或表的select权限时,是无法撤销的
7、删除用户
drop user 'username'@'ip'; #删除用户
示例:
drop user 'test'@'%'; #删除用户test
参考博客:https://www.cnblogs.com/zeroone/articles/2298942.html
mysql新建数据库、新建用户及授权操作的更多相关文章
- MySQL/MariaDB数据库的用户和权限管理
MySQL/MariaDB数据库的用户和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.元数据数据库(mysql) 系统授权表(均在mysql数据库中): db hos ...
- dotnetcore ef 调用多个数据库时用户命令执行操作报错
dotnetcore ef 调用多个数据库时用户命令执行操作报错 1.多个DbContext 时报错: 报错: More than one DbContext was found. Specify w ...
- oracle 数据库创建用户并授权
oracle 数据库创建用户并授权 备注: userName 为用户名,123456 为密码 drop user userName cascade; create user userName iden ...
- MySQL/MariaDB数据库的多表查询操作
MySQL/MariaDB数据库的多表查询操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.单表查询小试牛刀 [root@node105.yinzhengjie.org.cn ...
- mysql 创建数据库,添加用户,用户授权
一.创建mysql数据库 1.创建数据库语法 --创建名称为"testdb"数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb ...
- MySQL创建数据库与用户
root远程访问授权 mysql> SHOW DATABASES; +--------------------+ | Database | +---------------- ...
- mysql创建、删除用户与授权(linux測试)
注:我的执行环境是SUSE Linux + mysql5.6 一.创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; ...
- Mysql创建数据库以及用户分配权限
一.创建mysql数据库 1.创建数据库语法 --创建名称为“testdb”数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb DEFAULT C ...
- mysql创建远程登陆用户并授权
在创建安装微擎的过程中,针对第四步 创建远程登陆用户并授权 > grant all PRIVILEGES on database.* to root@'127.0.0.1' id ...
随机推荐
- Atitit 文员招募规范 attilax总结
Atitit 文员招募规范 attilax总结 1. 概念 2 2. 文员招募范文 2 3. 重大意义 3 3.1. 第一层 文章撰写 能力 3 3.2. 第二次 文档管理能力 文档索引 检索查找 ...
- 【翻译】Nginx的反向代理
本文为翻译文,原文地址:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ 本文描述代理服务器的基本配置.你能学到如何 ...
- QT信号/槽
在我的理解中,QT和Android都是类似的开发框架,都是由开发团队封装了各式各样的接口和数据结构.将一些问题的解决方法简单化比如QT中将线程封装为QThread,派生类通过重写run方法来将代码投入 ...
- bash python获取文本中每个字符出现的次数
bash: grep -o . myfile | sort |uniq -c python: 使用collections模块 import pprint import collections f = ...
- hdoj:2080
夹角有多大II Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 5.动态代理AOP实现-DynamicProxy模式
通过动态代理模式Interceptor实现在RegUser()方法本身业务前后加上一些自己的功能,如:PreProceed和PostProceed,即不修改UserProcessor类又能增加新功能 ...
- phalcon bug: model的findFirst会自动忽略一些空格
version: Phalcon 3 如果DB存在一条记录phone='13012345678 '(后边有一个空格), 则在查询User::findFirst("phone = '13012 ...
- [转] tomcat 7/8 启动非常慢的解决方法
在日志中发现启动慢的地方: -- ::] INFO o.s.c.s.DefaultLifecycleProcessor - Starting beans -- ::] INFO o.s.web.con ...
- [转] Android开发之如何保证Service不被杀掉(broadcast+system/app)
转发:原文链接http://blog.csdn.net/mad1989/article/details/22492519 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台 ...
- node-sass 安装失败 Failed at the node-sass@4.9.2 postinstall script的解决
控制台运行npm install时报错,报错信息如下: npm ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! node-sass@4.9.2 postins ...