2019-12-03

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]

你可能感兴趣的:(2019-12-03)