mysql的权限管理
命令 所有权限 所有库.所有表(作用对象) 用户名@'主机域' 密码
grant all on *.* to root@'%' identified by '123';
如何给开发授权
#增删改查
grant select,insert,delete,update on 业务库.* to dev@'%' identified by 'xxx';
INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, 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
#最小权限
grant select on 业务库.表名 to dev@'192.168.1.1' identified by 'xxx';
grant select on 业务库.表名 to dev@'192.168.1.1' identified by 'xxx';
脱敏:脱离敏感信息
单库级别:库.*
单表级别:库.表
单列级别:select(列名字) update(列名字)
开发人员说请给我开一个用户?
grant select on 业务库.表名 to dev@'192.168.1.1' identified by 'xxx';
1.看哪个库?哪个表?
2.你要干什么? 增删改查?
3.你在哪里操作?(主机域)
4.有没有指定的用户和密码?
5.发邮件,走流程
思考问题
mysql> create database wordpress;
Query OK, 1 row affected (0.09 sec)
mysql> create table t1 (id int);
Query OK, 0 rows affected (0.09 sec)
mysql> create table t2 (id int);
Query OK, 0 rows affected (0.01 sec)
mysql> create database blog;
Query OK, 1 row affected (0.00 sec)
mysql> create table tb1 (id int);
Query OK, 0 rows affected (0.04 sec)
image.png
1、grant select on *.* to wordpress@’10.0.0.5%’ identified by ‘123’;
#授权给wordpress@'10.0.0.5%'用户针对所有库所有表,查看的权限,密码是123
2、grant insert,delete,update on wordpress.* to wordpress@’10.0.0.5%’ identified by ‘123’;
#授权给wordpress@'10.0.0.5%'用户针对wordpress库下的所有表,增,删,改权限,密码是123
3、grant all on wordpress.t1 to wordpress@’10.0.0.5%’ identified by ‘123’;
#授权给wordpress@'10.0.0.5%'用户针对wordpress库下的t1表,所有权限,密码是123
一个客户端程序使用wordpress用户登陆到10.0.0.51的MySQL后,
- 1、对t1表的管理能力?
- all 1+2+3
- 2、对t2表的管理能力?
- 1.select insert delete update 1+2
- 3、对tb1表的管理能力?
- select 1
总结
1、如果在不同级别都包含某个表的管理能力时,权限是相加关系。
2、但是我们不推荐在多级别定义重复权限。
3、最常用的权限设定方式是单库级别授权,即:wordpress.*
MySQL连接管理工具
1).mysql
-u:指定用户
-p:指定密码
-P:指定端口
-h:指定主机域
-S:指定socket文件
-e:指定SQL语句
2)第三方客户端
navicat sqlyog
MySQL启动关闭流程
#启动方式
/etc/init.d/mysqld start
service mysqld start
systemctl start mysqld
mysqld_safe &
#停止方式
/etc/init.d/mysqld stop
service mysqld stop
systemctl stop mysqld
mysqladmin -uroot -p123 shutdown
#千万不要用
kill
kill -9
pkill
killall
MySQL配置文件读取顺序
image优先级:
1.--defaults-file
2.~/.my.cnf
3.defaults-extra-file
4.$basedir/my.cnf
5./etc/mysql/my.cnf
6./etc/my.cnf
思考问题
#cmake:
socket=/application/mysql/tmp/mysql.sock
#命令行:
--socket=/tmp/mysql.sock
#配置文件:
/etc/my.cnf中[mysqld]标签下:socket=/opt/mysql.sock
#default参数:
--defaults-file=/tmp/a.txt配置文件中[mysqld]标签下:socket=/tmp/test.sock
- /application/mysql/tmp/ mysql.sock
- /tmp/mysql.sock
- /opt/mysql.sock
- /tmp/test.sock
/etc/init.d/mysql -S /tmp/mysql.sock --defaults-file=/tmp/a.txt start
最终是在:/tmp/mysql.sock
优先级总结:
1.命令行
2.--defaults-file
3.配置文件(~/.my.cnf ---- defaults-extra-file ---- basedir/my.cnf ---- /etc/mysql/my.cnf ---- /etc/my.cnf)
4.cmake
MySQL的配置文件的作用
1.影响服务端的启动
2.影响客户端的连接
在/etc/my.cnf配置文件下更改
[server][mysqld]
[client][mysql][mysqldump][mysqladmin]
网友评论