Mysql-权限体系
登陆参数
# 常用参数: -h:--host=name 服务器名称 -D:--database=name 打开指定数据库 -p:--password[=name] 密码 -u:--user=name 用户名 -P:--port=# 端口号 -V:--version 输出版本信息 --prompt=name 设置提示符 # 常用命令: mysql -u root -p # 默认登陆本机部署的数据库 mysql -u root -p -h 127.0.0.1 -P 3306 # 指定数据地址并指明端口
权限体系
查询所有用户
mysql> use mysql;
查询所有用户 mysql> select Host,User from user; 查询用户权限:all表示所有权限,select表示只查权限,update表示只改权限,delete表示只删权限等。 mysql> show grants for "user"@"host"; mysql> show grants for "root"@"localhost";
添加授权用户(新创建的用户,默认情况下是没有任何权限的):使用root用户连接到服务器 mysql> create user "用户名"@"IP地址" identified by "密码";
例: mysql> create user "zabbix"@"%" identified by "123456"; mysql> create user "zabbix"@"localhost" identified by "123456";
注意: IP地址的表示方式: 1.% 表示用户可以从任何地址连接到服务器 2.localhost 表示用户只能从本地连接到服务器 3.指定一个ip表示用户只能从此ip连接到服务器
分配用户权限(给用户授权) mysql> grant 权限列表 on 库.表 to "用户名"@"ip地址" with grant option;
例: mysql> grant all privileges on *.* to "zabbix"@"%" with grant option; mysql> grant all privileges on *.* to "zabbix"@"%" identified by 'test' with grant option; mysql> grant all privileges on domain_check.tb_user to "zabbix"@"localhost" with grant option; mysql> grant select on domain_check.tb_user to "zabbix"@"localhost" with grant option; mysql> grant select,insert on domain_check.tb_user to "zabbix"@"192.168.1.1" with grant option;
注意: 1.权限列表:select、update、delete、insert、alter、drop、create、...(show) 2.库.表:*.*表示所有库的所有表。with grant option表示它具有grant权限。密码是test。 3.如果带了 with grant option,那么用户zabbix可以将select ,update权限传递给其他用户( 如xiaodon)。 4.如果没带 with grant option,那么用户zabbix不能给用户xiaodon授权。 5.all后面加上privileges,具体到哪些权限时得看MySQL版本,5.7版本不加privileges,8.0版本加privileges。
mysql> flush privileges; 刷新权限
收回用户权限 mysql> revoke all on *.* from "zabbix"@"localhost"; mysql> revoke all on domain_check.tb_user from "zabbix"@"localhost"; mysql> revoke select on *.* from "zabbix"@"localhost";
删除授权用户 mysql> drop user "用户名"@"ip地址" mysql> drop user "zabbix"@"%" mysql> delete from user where user='zabbix'; mysql> flush privileges;