MySQL数据库基础之用户管理和备份恢复

在数据库中用户管理是非常严格的,平时用的root账户在企业当中是不允许使用的.因为它的权限太大.
平常使用的时候一般使用普通账户,授予一定的权限,然后用于管理数据库.
每一个应用会有一个账户,比如论坛,对应会创建一个数据库.创建数据库的过程中要创建一个用户,这个用户去管理我们这个论坛的数据库.如果遇到黑客攻击,对我们服务器来讲并没有太大的伤害.

一:用户管理

MySQL用户管理

1:登录和退出MySQL

[root@localhost ~]# mysql -h 1.1.1.1 -P 3306 -u root -p123 mysql -e ‘select user,host from user’ 
#B主机远程链接到A主机的数据库,需要A主机的数据库先登陆去授权.
mysql> grant all privileges on *.* to root@'%' identified by 'xxxx';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#A主机的授权操作.

-h 指定主机名 【默认为localhost】
-P MySQL服务器端口 【默认3306】
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】

此处mysql为指定登录的数据库
-e 接SQL语句 (在脚本中使用)

2. 创建用户

方法一:CREATE USER语句创建
mysql> create user TNT; #这种方法一般不用

mysql> create user TNT@’%’ identified by ‘123456’; #这样可以直接从远程登录

mysql> create user TNT@'%' identified by 'xxxxx';
Query OK, 0 rows affected (0.00 sec)
#创建用户TNT@跟上这个用户的权限,localhost代表本机,百分号代表所有主机.然后授权数据库的密码.

方法二: GRANT语句创建(授权)
mysql> GRANT ALL privileges ON . TO ‘tnt’@’localhost’ IDENTIFIED BY ‘xxxxx’;

mysql>  GRANT ALL privileges ON *.* TO 'tnt'@'localhost' IDENTIFIED BY 'TNTnb@123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#授予数据库所有权限给账户tnt@localhost本机,给授权密码.

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#刷新授权表.

mysql> select * from mysql.user\G
*********** 6. row ***************************
                  Host: localhost
                  User: tnt

#查看有没有这个账户存在.这里要注意了,有这个账户,但HOST是localhost,这个账户远程链接会被拒绝的,相当于是只能创建了个账户.

mysql> grant select,insert on k1.* to admin1@’%’ identified by ‘123’;
flush privileges;
查看单独的库权限
mysql> select * from mysql.db\G

mysql> grant select,insert on k1.* to admin1@'%' identified by 'xxxxxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#这里和第一条有点不一样,这里是单独授予某种权限,并限制了哪个库.
#授予查看和插入权限并且是k1这个库的所有表,给admin1这个账户所有主机,并授予数据库的密码.

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

[root@localhost ~]# mysql -u admin1 -pxxxxx
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

[root@localhost ~]# mysql -u root -pxxxxx
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| company            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
#然后分别登陆admin1和root用户,会发现admin1只能看到某个表.

注意:
ALL privileges 所有的权限 也可以授权单独的权限
*.* 所有的表所有的库 也可以授权单独的库和单独的表
TNT@localhost 用户有则授权无则创建 授权账户可以在哪些主机登陆
localhost 本机
% 所有主机
10.19.40.%
10.19.40.11

3. 删除用户

方法一:DROP USER语句删除
DROP USER ‘user1’@’localhost’;

mysql> drop user admin1@'%';
#drop可以直接删除.
Query OK, 0 rows affected (0.00 sec)

方法二:DELETE语句删除
DELETE FROM mysql.user WHERE user=‘user2’ AND host=’localhost’;
FLUSH PRIVILEGES; 刷新授权表

mysql> delete from mysql.user where user='tnt' and host='localhost';
#这里其实是去删除mysql.user\G里面的某个字段.
#delete要用where去判断,两个条件符合才会删除.
Query OK, 1 row affected (0.03 sec)

4. 修改用户密码

root修改自己密码

方法一:
mysqladmin -uroot -p’123’ password ‘new_password’ //123为旧密码

[root@localhost ~]# mysqladmin -u root -p'旧密码' password '新密码';
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
#直接命令行修改.

方法二:
mysql> update mysql.user set authentication_string=password(‘新密码’) where user=‘root’ and host=‘localhost’;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值