mysql账户最小授权_mysql 创建帐号并授权

数据库安装请参考:http://youngbrick.iteye.com/blog/2335851

创建数据库:

MariaDB [mysql]> create database mydbtest default charset utf8 collate utf8_general_ci;

Query OK, 1 row affected (0.01 sec)

查询数据库:

MariaDB [mysql]> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| mydbtest |

+--------------------+

4 rows in set (0.00 sec)

创建mysql登录用户:

用户:brick

密码:brick!123

localhost:只允许本机访问

%:允许远程访问

MariaDB [mysql]> insert into mysql.user(Host,User,Password) values('localhost','brick','brick!123');

Query OK, 1 row affected, 4 warnings (0.01 sec)

mysql 5.7没有password 字段了,通过create 创建帐号

CREATE USER'username'@'localhost' IDENTIFIED BY '123456';

查看创建的帐号:

MariaDB [(none)]> select user,host,password from mysql.user;

+-------+-----------+-------------------------------------------+

| user | host | password |

+-------+-----------+-------------------------------------------+

| root | localhost | *023D9E78C29EAF0470DC6CC2BCBFA87504FE06E1 |

| root | 127.0.0.1 | *023D9E78C29EAF0470DC6CC2BCBFA87504FE06E1 |

| root | ::1 | *023D9E78C29EAF0470DC6CC2BCBFA87504FE06E1 |

| brick | localhost | brick!123 |

+-------+-----------+-------------------------------------------+

4 rows in set (0.00 sec)

发现密码错了,密码需要password(‘密码’)加密,修改一下:

MariaDB [(none)]> update mysql.user set password=password('brick!123') where user='brick';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

确认一下,再看一眼:

MariaDB [(none)]> select user,host,password from mysql.user;

+-------+-----------+-------------------------------------------+

| user | host | password |

+-------+-----------+-------------------------------------------+

| root | localhost | *023D9E78C29EAF0470DC6CC2BCBFA87504FE06E1 |

| root | 127.0.0.1 | *023D9E78C29EAF0470DC6CC2BCBFA87504FE06E1 |

| root | ::1 | *023D9E78C29EAF0470DC6CC2BCBFA87504FE06E1 |

| brick | localhost | *CEDA60EA702EFCE18A1B31CE4EB823FF363B8085 |

+-------+-----------+-------------------------------------------+

4 rows in set (0.00 sec)

授权,mydbtest所有权限授予brick帐号:

刚上面修改了mysql.user表,flush privileges一下:

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

如果不执行上面的命令,授权时会出现这个错误:

MariaDB [mysql]> grant all privileges on mydbtest.* to brick@localhost;

ERROR 1133 (42000): Can't find any matching row in the user table

flush privileges执行完后,再执行grant授权。(mydbtest.*)mydbtest数据库的所有权限授予brick

MariaDB [(none)]> grant all privileges on mydbtest.* to brick@localhost;

Query OK, 0 rows affected (0.00 sec)

授权权限后也需要flush privileges;否则帐号没有权限登录,权限没有持久化到数据库中。

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

退出mysql:

MariaDB [mysql]> exit

Bye

重新登录mysql:

[root@localhost ~]# mysql -ubrick -p

Enter password: (输入密码)

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 13

Server version: 5.5.50-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mydbtest |

+--------------------+

2 rows in set (0.00 sec)

MariaDB [(none)]>

查看当前用户的权限:

MariaDB [(none)]> show grants;

+--------------------------------------------------------------------------------------------------------------+

| Grants for brick@localhost |

+--------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'brick'@'localhost' IDENTIFIED BY PASSWORD '*CEDA60EA702EFCE18A1B31CE4EB823FF363B8085' |

| GRANT ALL PRIVILEGES ON `mydbtest`.* TO 'brick'@'localhost' |

+--------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

=======================命令备注==========================

授权grant xxxx to xxx:

MariaDB [(none)]> grant all privileges on mydbtest.* to brick@localhost;

删除权限revoke   xxx  from xxx:跟授权很像,grant换成revoke,to换成from

MariaDB [(none)]> revoke all privileges on mydbtest.* from brick@localhost;

查看用户权限:show grants for xxxx@xxxx

MariaDB [(none)]> SHOW GRANTS FOR 'brick'@'localhost';

+--------------------------------------------------------------------------------------------------------------+

| Grants for brick@localhost |

+--------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'brick'@'localhost' IDENTIFIED BY PASSWORD '*CEDA60EA702EFCE18A1B31CE4EB823FF363B8085' |

+--------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

更详细的授权命令写法:

https://www.techonthenet.com/mariadb/grant_revoke.php

数据导入:

将xx.sql文件放到/usr/local目录

登录mysql进入命令行

msyqlxx>use mydb;

mysqxx>source /usr/local/xx.sql;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值