28.Mysql权限与安全
28.1 Mysql权限管理
28.1.1 权限系统的工作原理
对连接的用户进行身份认证,合法的用户通过认证,不合法的用户拒绝连接;
对通过认证的合法用户赋予相应的权限,用户可以在取得的权限范围内对数据库做相应的操作。
身份认证在user表中包括三个属性:host、user、password。
Mysql权限表在启动时就已加载在内存中,通过身份认证的用户直接在内存中存取权限表。

28.1.2 账户管理
1.创建账户
语法:
create user user_name identified by 'password';
例子:
create user user_1 identified by '123456';
select * from user;
-- 授予登录权限
grant usage on *.* to 'user_1'@'%';
2.修改账户[密码]
命令行方式:
# mysqladmin -h host_name -u user_name password "newpwd"
SQL方式:
mysql> set password for 'user_name'@'host_name'=password('newpwd');
SQL方式修改自身密码:
mysql> set password=password('newpwd');
直接修改user表的方式:
mysql> update user set password=password('newpwd') where host='host_name' and user='user_name';
3.删除账户
drop user user_name[,...];

28.1.3 权限管理
1.权限表按范围分为4级:
user 全局级权限(物理数据库级)
db 逻辑数据库级权限(对应其它数据库的模式级)
tables_priv 表级权限
columns_priv 列级权限
权限获取顺序为:user-->db-->tables_priv-->columns_priv
即当上一级没有该权限时才向下一级获取,范围更大的权限覆盖范围小的权限。
2.权限的种类分为25种:
select_priv 查询权限
insert_priv 新增权限
update_priv 修改权限
delete_priv 删除权限
index_priv 索引权限(create、alter、drop索引的权限)
alter_priv 修改表权限
create_priv 创建表权限
drop_priv 删除表权限
grant_priv 授权的权限
create_view_priv 视图权限(create、alter、drop视图的权限)
show_view_priv 查看视图的权限
create_routine_priv 存储过程和函数的创建权限(create、alter、drop视图的权限)
alter_routine_priv 存储过程和函数的修改、删除权限(create、alter、drop视图的权限)
references_priv
reload_priv
shutdown_priv
process_priv
file_priv
show_db_priv
super_priv
create_tmp_table_priv
lock_tables_priv
execute_priv
repl_slave_priv
repl_client_priv
usage 登录权限
all privileges 上述所有权限的统称(不包括grant_priv,grant_priv由with grant option选项决定)
3.查看账户权限
show grants for user@host;
或者
select * from user;
select * from db;
select * from information_schema.schema_privileges where grantee="user@host";
select * from tables_priv;
select * from columns_priv;

4.授权
语法:
grant 权限 on [对象类型] {范围和对象} to user@host[,...] with grant option;
说明:
权限 上述的25种权限及统称all privileges。
对象类型 分为table、function、procedure,默认为table,给函数或存储过程单独授权时需指定对象类型(function、procedure)。
范围和对象 指授权的客体,即将某个对象或某个范围内的所有对象的权限授出。
全局级(user表)用*.*表示,*.*即所有数据库的所有对象,该权限存储于user表;
数据库级(db表)用db_name.*表示,db_name.*即db_name数据库的所有对象,该权限存储于db表;
表级(tables_priv表)用db_name.tab_name表示,db_name.tab_name即db_name数据库的tab_name表,该权限存储于tables_priv表;
列级(columns_priv表)用db_name.tab_name.col_name表示,db_name.tab_name.col_name即db_name数据库的tab_name表的col_name列,该权限存储于columns_priv表。
user@host 指授权的主体,即授给谁。user表示用户,host表示用户的登录地址。
with grant option 表示用户能否将获得的权限进行转授,转授功能对应grant_priv权限。
例子1:给用户user_1授scott.emp.sal列的select权限。
创建用户test
create user user_1@localhost indetifyde by 'liwei';
grant select on scott.emp.sal to user_1@localhost;
select * from columns_priv;
例子2:给用户user_1授scott.emp表的select权限。
grant select on scott.emp to user_1@localhost;
select * from tables_priv;
例子3:给用户user_1授scott数据库的select权限。
grant select on scott.* to user_1@localhost;
select * from db;
例子4:给用户user_1授所有对象的select权限。
grant select on *.* to user_1@localhost;
select * from user;
例子4:给用户user_1授所有对象的select权限,并允许其转授权。
grant select on *.* to user_1@localhost with grant option;
select * from user;

5.回收权限
语法:
revoke 权限 on 模式.对象 from 用户@host;

6.账户限制(不建议设置)
账户限制指限制某个账户访问,当超过user中max_questions、max_updates、max_connections、max_user_connections四个列设置的阈值时将提示资源不足。
语法:
grant ... with option;
option包括下面4个选项:
max_queries_per_hour count:每小时最大查询次数,对应max_questions列设置;
max_updates_per_hour count:每小时最大更新次数,对应max_updates列设置;
max_connections_per_hour count:每小时最大连接次数,对应max_connections列设置;
max_user_connections count:最大用户连接次数,对应max_user_connections列设置;
例子:

28.2 mysql安全问题
28.2.1 操作系统相关的安全问题
28.2.2 数据库相关的安全问题
28.3 其他安全设置选项
28.3.1 old-passwords
28.3.2 safe-user-create
28.3.3 secure-auth
28.3.4 skip-grant-tables
28.3.5 skip-network
28.3.6 skip-show-database
28.4 小结

28.Mysql权限与安全的更多相关文章

  1. MySQL 权限相关

    # ============================= mysql 权限相关 =====================================================gran ...

  2. MySQL权限授权认证详解

    MySQL权限授权认证详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL权限系统介绍1>.权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除 ...

  3. MySQL权限和用户管理

    Mysql权限系统(由mysql权限表进行控制user和db)通过下面两个方面进行认证: 1)对于连接的用户进行身份验证,合法的通过验证,不合法的拒绝连接. 2)对于通过连接认证的用户,可以在合法的范 ...

  4. 转 MySQL权限管理

    ###sample: #####view all userSELECT user, host from mysql.user;mysql> SELECT user, host from mysq ...

  5. MySQL 权限与安全

    一.MySQL权限系统通过两个阶段进行认证: (A) 对用户进行身份认证,IP地址和用户名联合, (B) 对合法用户赋予相应权限,权限表在数据库启动的时候载入内存中. 二.在权限的存取过程中,会用到& ...

  6. mysql权限管理

    经常遇到有网友在QQ群或者论坛上问关于mysql权限的问题,今天抽空总结一下关于这几年使用MYSQL的时候关于MYSQL数据库的权限管理的经验,也希望能对使用mysql的网友有所帮助! 一.MYSQL ...

  7. mysql权限与安全

    一.MySQL权限系统通过两个阶段进行认证: (A) 对用户进行身份认证,IP地址和用户名联合, (B) 对合法用户赋予相应权限,权限表在数据库启动的时候载入内存中. 二.在权限的存取过程中,会用到& ...

  8. MYSQL权限表user操作

        MYSQL权限表user cmd中进人mysql找到mysql安装目录     E:\wamp\bin\mysql\mysql5.6.12\bin>mysql.exe -u 用户名  - ...

  9. 【MySQL学习笔记】MySQL权限表

    MySQL权限表,控制用户对数据库的访问,存在mysql数据库中,由mysql_install_db初始化,包括user,db,host,tables_priv,columns_priv,procs_ ...

随机推荐

  1. spark submit参数调优

    在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置 ...

  2. centos7 设置时区和时间

    1.设置时区(同步时间前先设置) timedatectl set-timezone Asia/Shanghai 2.安装组件 yum -y install ntp systemctl enable n ...

  3. C#编程经验-enum and struct

    enum,store fixed values,use array replace,not use this data-structurestruct,store several variables, ...

  4. Hadoop 管理工具HUE配置-Hive配置

    1 前言 首先要配置好Hive,可以参见:http://www.cnblogs.com/liuchangchun/p/4761730.html 2 hive配置 找到beeswax标签,不叫hive, ...

  5. Win7系统安装Centos7.0双系统(三)

    4.6语言选择 4.7安装信息设置,除以下几项改动其他都可默认. 软件选择(默认最小):带GUI的服务器或GNOME桌面,可根据使用需要选择安装软件. 磁盘分区:Linux默认可分为3个分区,分别是b ...

  6. 当通过Nuget包管理器获取还原组时,出现 提示 “xxxxx”已拥有为“xxxxx”定义的依赖项

    当通过Nuget包管理器获取还原组件时,出现  提示 “xxxxx”已拥有为“xxxxx”定义的依赖项 时 解决方法: 工具---扩展和更新,把Nuget包管理器卸载后,重启VS,再安装,现打开VS项 ...

  7. Kettle从excel导入数据到sql server

    从excel工作表中读取数据逐行执行insert语句插入到sqlserver 为了简单起见只选取了三个个字段作为参数,日期,字符类型的需要加上'' Spoon是作业配置的GUI界面,配置好后可以通过控 ...

  8. Xilinx------BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用

    转载-----BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用   目前,大型设计一般推荐使用同步时序电路.同步时序电路基于时钟触发沿设计,对时钟的周期.占空比.延时和抖动提出了更高的要 ...

  9. 第一课了解SQL

    1.1 数据库基础 其实一直在使用这数据库,当你在邮箱中查询名字时,当在网站上进行搜索,在自动取款机上使用ATM卡,这些操作都是在使用数据库 1.1.1 数据库   数据库:保存有组织的数据的容器(通 ...

  10. Problem C: 重复子串(string)

    /* 一个性质? right集合中只有相邻的位置才会有用 那么考虑set启发式合并, 能够求出大概nlogn个有用的对 那么将这些对按照右端点排序, 查询也按照右端点排序就可以离线维护信息 然后需要维 ...