mysql的权限管理
命令 所有权限 所有库.所有表(作用对象) 用户名@'主机域' 密码
grant all on *.* to root@'%' identified by '123';
到了企业后如何给开发授权?
#增删改查
grant select ,insert,delete,update on 业务库.* to dev@'%' identified by '123';
所有权限:
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 TABLESPAC
#最小权限
grant select on 业务库.表名 to dev@'192.168.1.1' identified by 'xxx';
脱敏:脱离敏感信息
单库级别:库.*
单表级别:库.表
单列级别:select(列名字) update(列名字)
开发人员说请给我开一个用户?
1.看哪个库?哪个表?
2.你要干什么?增删改查?
3.你在哪里操作?(主机域)
4.有没有指定的 用户和密码?
5.发邮件,走流程
思考问题
mysql> create database wordpress;
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
pkill
killall
kill -9
优先级:
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
1. /application/mysql/tmp/ mysql.sock
2. /tmp/mysql.sock
3. /opt/mysql.sock
4. /tmp/test.sock
最终是在:/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.影响客户端的连接
[server][mysqld]
[client][mysql][mysqldump][mysqladmin]