Mysql中如何创建用户密码授权权限

Mysql中新建用户,设置密码

1. 新建用户

  • step 1.创建用户:
    CREATE USER 'aaa'@'%' IDENTIFIED BY '123456';表示创建新的用户,名为aaa,新用户密码为123456,'%'表示允许远程登陆但是不允许本机登录
    CREATE USER 'bbb'@'%' IDENTIFIED BY '123456';//表示新创建的用户,名为bbb,这个用户密码为123456,可以从其他电脑远程登陆mysql所在服务器
    CREATE USER 'ccc'@'%';//表示新创建的用户ccc,没有密码,可以从其他电脑远程登陆mysql服务器

  • step 2.授权用户:GRANT ALL PRIVILEGES ON appmetadataDB.* TO 'aaa'@'%';表示将数据库appmetadatadb下的所有表授权给用户aaa。这样用户名aaa就能远程访问到这个数据库(appmetadatadb)下的所有表。写入user表,但是并没有及时写入权限表(grant table)。

  • step 3.刷新权限表:flush privileges执行这个命令的原因是,需要将新加入的用户写入到权限表中,即更新grant table

  • step 4.查看如下

mysql> select host,user,password from mysql.user;
+-----------+--------------+-------------------------------------------+
| host      | user         | password                                  |
+-----------+--------------+-------------------------------------------+
| localhost | root         | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 127.0.0.1 | root         |                                           |
| ::1       | root         |                                           |
| localhost |              |                                           |
| %         | aaa          | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+--------------+-------------------------------------------+
10 rows in set (0.02 sec)

这里的mysql.user是一个系统表,任何mysql数据库系统都会存在。

  • 检测如下
    如果在appmetadatadb数据库所在的系统上登录用户aaa会报错。错误如右:ERROR 1045 (28000): Access denied for user 'aaa'@'localhost' (using password: YES)。但是将相同的代码放到另一台主机上登录,却可以实现登录。
    这个教训一定要记住:就是创建用户时,指定的%是指除了数据库所在主机外的所有主机都可以登录。比如说,下面这个是用bbb这个用户,在虚拟机上远程访问物理机上的数据库,但是在访问的时候,需要在添加-h [数据库所在主机的IP]字段。
[root@littlelawson sbin]# mysql -h 192.168.211.2 -u bbb -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 741
Server version: 5.6.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

2. 修改密码

修改用户密码,方法有很多,这里提供其中的两种:

  • set password for 'bi_reader'@'%' = password('123');,其中[]中的内容是可变字段。

3. 删除用户

  • 命令:drop user [userName]

4. 收回权限

删除权限使用revoke命令。如下:

mysql> show grants for etl@'%';
+------------------------------------------+
| Grants for etl@%                         |
+------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'etl'@'%' |
+------------------------------------------+
1 row in set (0.00 sec)

使用root用户修改权限

mysql>  revoke drop on *.* from etl@'%';
Query OK, 0 rows affected (0.02 sec)

再次查看etl用户的权限

mysql> show grants\G
*************************** 1. row ***************************
Grants for etl@%: GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'etl'@'%'
1 row in set (0.00 sec)

5.其它

  • 使用mysql的时候不管输入什么账户,都可以登录,但是无法查看其它用户的表【因为没有权限】。
C:\Users\enmonster>mysql -u wahaha -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.6.37 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user();
+------------------+
| user()           |
+------------------+
| wahaha@localhost |
+------------------+
1 row in set (0.00 sec)
  • mysql -u root -p命令的意思是:使用账户root登录,登录密码在后面输入。
  • mysql普通用户无法直接通过create database [Database Name]创建数据库,会报错(Access denied for user 'littlelawson'@'localhost' to database 'testfd')。必须在root用户下先创建个数据库再通过授权语句把该database的权限给普通用户。授权语句为:grant all on user.* to user@host identified by password
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值