前言


      本文主要是介绍mysql创建新用户命令及赋予权限等命令,为了便于理解,文中会给出相关示例。通常情况下,创建用户,修改mysql密码,授权,是需要有mysql里的root权限。


1.创建用户:

    //root用户登录
root@xxx jh>mysql -u root -p 123456
//创建用户fsxf
mysql> insert into mysql.user(Host,User,Password)
values("localhost","fsxf",password("666666"));
//刷新系统权限表
mysql>flush privileges;
//退出root用户然后用新用户登录一下。
mysql>exit;
root@xxx jh >mysql -u fsxf -p 666666
//登入成功
mysql>

2.修改用户密码:

    //root用户登录
root@xxx jh>mysql -u root -p 123456
//修改用户密码
mysql>update mysql.user set password=password('123456') where
User="fsxf" and Host="localhost";
//刷新系统权限表
mysql>flush privileges;

3.删除用户:

    //root用户登录
root@xxx jh>mysql -u root -p 123456
//删除用户
mysql>DELETE FROM user WHERE User="fsxf" and Host="localhost";
//刷新系统权限表
mysql>flush privileges;

4.权限管理:

  • 数据库/数据表/数据列权限:
    Alter: 修改已存在的数据表(例如增加/删除列)和索引
Create: 建立新的数据库或数据表
Delete: 删除表的记录
Drop: 删除数据表或数据库
INDEX: 建立或删除索引
Insert: 增加表的记录
Select: 显示/搜索表的记录
Update: 修改表中已存在的记录
  • 特别的权限:
    ALL: 允许做任何事(和root一样)
USAGE: 只允许登录--其它什么也不允许做
  • 管理权限命令:

privileges: 通常情况下,权限是指数据库/数据表/数据列和特别权限

obj: user将对obj拥有privileges权限。*.*意味着权限对所有数据库和数据表有效。dbname.*意味着dbname数据库中的所有数据表有效。 dbname.tblname意味着仅对名为dbname中tblname表有效。mysql还允许通过在privileges后面使用圆括号,指定user对obj中的指定数据列具有privileges权限。

user: 具有username@hostname模式,是指允许username在hostname机器上对obj具有privileges权限,其中可用%来匹配所有的hostname。

password: 用于指定user访问mysql的密码,可以不同于用户密码。

WITH GRANT OPTION: 用户可以使用GRANT/REVOKE命令将他拥有的权限赋予其他用户。

    GRANT <privileges> ON <obj> TO <user>
[IDENTIFIED BY "<password>"] [WITH GRANT OPTION];
  1. GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON dbname.* TO username@% IDENTIFIED BY "password";flush privileges;
  2. GRANT ALL ON *.* TO username@% IDENTIFIED BY "password";flush privileges;
  3. GRANT UPDATE(name,email) ON dbname.tblname TO username@% IDENTIFIED BY "password";flush privileges;
  • 查看mysql(show的大用途):
    1.show procedure status;
2.show grants for username;
3.show grants for username@10.0.1.1;
4.show create database dbname;
5.show create table dbname.tblname;
6.show create procedure procname;
7.SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';')
AS query FROM mysql.user;
8.SELECT DISTINCT CONCAT('User: ',user,'@',host,';') AS query
FROM mysql.user;
9. show processlist;
10. show variables like '%quer%';
11. show global status like '%Slow_que%';
12. show profile;
13. show variables like "%pro%";

mysql 权限分配及创建新用户的更多相关文章

  1. ubuntu18.04安装mysql以及重置密码创建新用户

    1.安装mysqlsudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libm ...

  2. 如何创建新用户和授予MySQL中的权限

    原创官网http://www.howtoing.com/how-to-create-a-new-user-and-grant-permissions-in-mysql/ 关于MySQL MySQL是一 ...

  3. Mysql 5.6创建新用户并授权指定数据库相应权限

    一.环境 Centos 6.9 Mysql 5.6.40 二.步骤 1.使用root用户登陆mysql mysql -uroot -p 输入密码: 2.创建新用户 CREATE USER 'user' ...

  4. MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在

    MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在    版权声明:本文为博主原创文章,欢迎大家转载,注明出处即可.有问题可留言,会尽快回复,欢迎探讨 ...

  5. mysql 创建新用户、数据库、授权

    创建用户 1.登录mysql mysql -uroot -p 2.创建本地用户(2.3选其一) #use mysql;             //选择mysql数据库 #create user 'w ...

  6. MySQL学习(一)——创建新用户、数据库、授权

    一.创建用户 1.登录mysql mysql -u root -p 2.创建本地用户>/font> use mysql; //选择mysql数据库 create user 'test'@' ...

  7. Mysql创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES)

    MySQL创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES) ,多半是因为存在匿名用户, ...

  8. mysql5.6创建新用户并给授权指定的数据库权限

    一.环境: CentOS 6.8 mysql 5.6 二.背景 给外包的工作人员提供我司某台服务器的 mysql 中某个数据库的访问权限. 之所以要做限制,是防止他们对我司其他的数据库非法进行操作. ...

  9. mysql创建新用户及新用户不能本地登陆的问题

    最近在搭建hadoop集群,主节点上面安装的MySQL数据库,对着方面不熟悉,为hive.Ooize等服务统一使用的root账号和密码,为了安全一些库对于某些用户是不可见的,所以需要针对不同的服务设置 ...

随机推荐

  1. php 之 文件上传(0523)

    如何上传图片: 上传页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  2. 阿里云服务器上架设apache php mysql 环境

    由于朋友一公司要做企业站,于是就买了阿里云的服务器.买完进去发现iptables 和selinux默认就是关掉的,可能是因为阿里云有云盾就可以不用自带的防火墙吧,具体配置过程如下(我边配边记录的): ...

  3. [Python 3.x 官方文档翻译]Whetting Your Appetite 欢迎您的使用

    If you do much work on computers, eventually you find that there’s some task you’d like to automate. ...

  4. pyqt5和qt-designer结合

    在ubuntu中我们安装了python3-pyqt5这个包后就可以用pyqt5编程了,但是只能用纯代码写窗体,很麻烦.我们要用qt-designer来设计窗体. 我们通过新立得安装qt4-design ...

  5. 容器 set

    SET 是个有序表!他会根据INSERT的数值自动排序! SET里面不可能出现相同的元素!SET在insert的时候会排重的! SET本质上是一种树结构,在检索上比链表快,插入比数组方便,但是不允许重 ...

  6. ARM 汇编器对C的扩展

    __swi void ledtest();    //:声明 edtest 是个软中断. __asm  内嵌汇编          //:通常在C程序里面需要嵌入汇编代码,这是就可以用__asm关键字 ...

  7. Java Tips: 使用Pattern.split替代String.split

    String.split方法很常用,用于切割字符串,split传入的参数是正则表达式,它的内部是每次都comiple正则表达式,再调用Pattern.split方法: public String[] ...

  8. Java如何从HttpServletRequest中读取HTTP请求的body

    首先贴出原文地址,尊重原作者 http://blog.csdn.net/zxygww/article/details/47045055 注意:下面方法已验证通过. HTTP请求中的是字符串数据: // ...

  9. VS2013中C++创建DLL导出class类

    1.创建"Win32 Console Application"项目,命名为"ClassDllLib",并在"Application type" ...

  10. Java里的equals总结

    前段时间一直在工作中使用Java,由于有一些C++功底,于是简单看了一下Java相关的语法便开始编写代码,结果在创建一个自定义类,并将自定义类放入ArrayList中,之后查找ArrayList是否有 ...