MySQL中常用的用户授权操作

mysql 用户授权


1 )概述
  • 让每个应用程序,单独开一个mysql的用户权限
  • 所有mysql用户存储在 mysql库的user表中

2 ) 多种用户授权方式示例

show databases;
use mysql;

select user, authentication_string, host from mysql.user;

-- 创建和删除用户
-- create user '用户名'@'连接者的ip地址' identified by '密码';
create user wang@'127.0.0.1' identified by 'root123';
drop user wang@'127.0.0.1';

create user zz@'127.0.0.%' identified by 'root123';
drop user zz@'127.0.0.%';
-- 以上是在某个网段内创建用户

create user lee@'%' identified by 'root123';
drop user lee@'%';
-- 以上是在任意的 ip 地址下, 创建用户

create user 'xx'@'%' identified by 'root123';
drop user 'xx'@'%';

3 )修改mysql用户

rename user '用户名'@'ip地址' to '新用户名'@'ip地址'

4 ) 修改mysql密码

set password for '用户名'@'ip地址' = PASSWORD('新密码');

5 )授权管理

语法

  • grant 权限 on 数据库.表 to ‘用户’@‘ip地址’

示例

grant all privileges on *.* TO 'xx'@'某ip'; 用户 xx 拥有所有数据库的所有权限
grant all privileges on studydb.* TO 'xx'@'某ip'; 用户xx 拥有数据库 studydb 的所有权限
grant all privileges on studydb.info TO 'xx'@'某ip'; 用户xx 拥有数据库 studydb中 info表的所有权限

grant select on studydb.info TO 'xx'@'某ip';  用户xx 拥有数据库 studydb 中info表的查询权限
grant select, insert on studydb.* TO 'xx'@'某ip';  用户xx 拥有数据库 studydb 中info表的查询和插入权限

flush privileges; -- 将数据读取到内存中,从而立即生效,这个必须要有

对于权限的解读

  • all privileges 除grant外的所有权限
  • select 仅查权限
  • select, insert 查和插入权限
  • usage 连接(登录)权限,建立一个用户,默认就会自动授予其usage权限, 无其他权限
  • alter 使用 alter table
  • alter routine 使用 alter procedure 和 drop procedure
  • create 使用 create table
  • create routine 使用 create procedure
  • create temporary tables 使用 create temporary tables
  • create user 使用 create user、drop user、rename user 和 revoke all privileges
  • create view 使用 create view
  • delete 使用delete
  • drop 使用 drop table
  • execute 使用call和存储过程
  • file 使用 select info outfile 和 load data infile
  • grant option 使用 grant 和 revoke
  • index 使用 index
  • insert 使用 insert
  • lock tables 使用 lock table
  • process 使用 show full processlist

查看授权

  • show grants for “用户”@“ip地址”
  • $ show grants for 'xx'@'localhost'

取消授权

  • revoke 权限 on 数据库.表 from ‘xx’@‘ip地址’;

  • $ revoke ALL PRILEGES on studydb.* from 'xx'@'localhost';

  • 注意

    • 这些由运维DBA统一管理
    • 为每个项目数据库创建用户
    • 并赋予相关权限,
    • 开发人员基本使用不到

你可能感兴趣的:(DataBase,mysql,数据库)