mysql 安全权限_二.MySQL权限与安全

## 用户权限

1.新建普通用户

`CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass' `

2.使用GRANT 语句创建新用户

`GRANT SELECT,UPDATE ON *.* TO 'testUser'@'localhyost' IDENTIFIED BY 'testpwd' ;` 赋值权限

## 删除用户

MySQL 数据库中,使用DROP USER 语句删除用户,也可以直接通过DELETE从mysql.user表中删除

1.使用drop user删除用户:

DROP USER user [, user] ;

例 `DROP USER 'user'@'localhost' ;`

2.使用delete 语句删除用户

`DELETE FROM MySQL.user WHERE host='localhost' and user='username'`

## root 用户修改自己的密码

1.使用mysqladmin指定新密码

`mysqladmin -u username -h localhost -p password "newpwd"`

2. 修改mysql 数据库的user表

`UPDATE mysql.user set password=PASSWORD("rootpwd") WHERE User="root" and Host="localhost"; `

3.使用set 语句修改root 密码

`SET PASSWORD=PASSWORD("rootpwd")`

## root 用户密码丢失的解决办法

1.使用--skip-grant-tables 选项启动MySQL服务

以skip-grant-tables 选项启动时,mysql 服务器将不加载权限判断,任何用户都能访问数据库。

linux 操作系统中,使用mysqld_safe 来启动MySQL服务。也可以使用/etc/init.d/mysql命令来启动MySQL服务。

`mysqld_safe --skip-grant-tables user=mysql` 或

`/etc/init.d/mysql start-mysqld --skip-grant-tables `

启动mysql 服务后,就可以使用root 用户登录了

2.修改密码

3.加载权限表 `mysql > FLUSH PRIVILEGES; `

## 授权

权限存储在mysql.user 表中

GRANT ALL ON \* . \* 和 REVOKE ALL ON \* . \* 只授予和撤销全局权限

创建一个用户授权:`GRANT SELECT,INSERT ON *.* TO 'grantUser'@'localhost' IDENTIFIED BY 'grantpwd' WHERE GRANT OPTION;`

## 收回权限

`REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'`

`MySQL > REVOKE UPDATE ON *.* FROM 'testUser'@'localhost';`

## 查看权限

`SHOW GRANTS FOR 'testUser'@'localhost'`

## mysql 安全控制

1.禁止远程链接数据库

启用skip-networking, 将my.cnf的 skip-networking注释去掉即可。

如果确实需要提供远程用户访问数据库,可以考虑修改默认监听端口,同时添加防火墙规则,只允许新人网络监听

```

$ mysqladmin -u root -p shutdown

$ mysqld_safe -user=mysql &

```

2.不要把FILE、PROCESS、或者SUPER权限授予管理员以外的账户

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值