MYSQL访问控制与安全管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MYSQL访问控制与安全管理

用户账户管理

利用select语句查看mysql数据库的使用者帐号

select user from mysql.user;

1)创建用户帐号

语法格式:

create user <用户名> 【identified by [password] 口令 】

<用户名>:指定创建用户帐号,其格式为‘user -name"@"host name’。这里‘user -name’是用户名,‘host name’为主机名,即用户连接mysql时所在主机的名字。如果在创建的过程中,只给出了账户中的用户名,而没有指定主机名,则主机名会默认为是‘%’,表示一族主机


可选项password:用于指定散列口令,即若使用明文设置口令时,需忽略password关键字;如果不想以明文设置口令,且知道password()函数返回给密码的散列值,则可以在口令设置语句中指定此散列值,但需要加上关键字password


identified by子句:用于指定用户账户对应的口令,若该用户账户无口令,则可省略此子句。


<口令>:指定用户帐号的口令,在identified by 关键字或password关键字之后。给定的口令值可以是只由字母和数字组成的明文,也可以是通过password函数得到的散列值。

create user 'zhangsan'@'localhost' identified by '123'
select password('123') #执行结果 *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
create user 'zhangsan'@'localhost' identified by password '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257'

注意:

如果create user语句的使用中,没有为用户指定口令,那么mysql允许该用户可以不使用口令登录系统,然而从安全的角度而言,不推荐这种做法

使用create user语句创建一个用户帐号后,会在系统自身的mysql数据库的user表中添加一条新记录。如果创建的账户已经存在,则语句执行会出现错误。

新创建的用户拥有的权限很少,它们可以登录到mysql,只允许进行不需要权限的操作,如使用show语句查询所有存储引擎和字符集的列表等。

如果两个用户具有相同的用户名和不同的主机名,mysql会将它们视为不同的用户,并允许为这两个用户分配不同的权限集合。

删除用户

语法格式:

drop user<用户名 >,【用户名1】......

注意:

drop user 语句可用于删除一个或多个mysql账户,并撤销其原有权限

使用drop user语句,必须拥有mysql中的mysql数据库的delete权限或全部create user权限

在drop user语句的使用中,如果没有明确地给出账户的主机名,则该主机名会默认为是%

drop user zhangsan@localhost

修改用户帐号

语法格式:

rename user <旧用户> to <新用户>
rename user 'liming'@'localhost' to 'wanghong'@'localhost'

注意:


rename user语句用于对原有mysql账户进行重命名


如果系统中旧帐号不存在或新账户已存在,则语句执行会出现错误


要使用rename user语句,必须拥有mysql中的mysql数据库的update 权限或全局createa user权限


修改用户口令


语法格式:

set password [for <用户名>] = password('新口令') | OLD_password('旧明文口令') | '加密口令值'
set password for 'zhangsan'@'localhost'=passwore('456');

for子句:可选项,指定要修改口令的用户

password:表示使用函数password设置新口令,即新口令必须传递到函数password中进行加密

加密口令值:表示已被函数password加密的口令值

select password('hello') #查看hello的散列值

账户权限管理

查看权限语法:

show grants for 'wanghong'@'localhost'

权限的授予

语法:

grant <权限类型> [(<列名>)] [,<权限类型>[(<列名>)]]
on <对象> <权限级别> to <用户>
其中<用户>的格式
<用户名> [identified by [passowrd] <口令>]
[with grant option]
|max_queries_per_hour <次数>
|max_updates_per_hour <次数>
|max_connections_per_hour <次数>
|max_user_connections <次数>
grant select(student_id,student_name) on db_school.tb_student to 'wanghong'@'localhost'
grant select,update on db_school.tb_student to 'wanghong'@'localhost' identified by '123' 'huang'@'localhost' identifity by '789'
grant all on mytest.* to 'wanghong'@'localhost'

权限转移与限制

(1)转移权限

如果在with子句指定为with grant option,则表示to子句中所指定的所有用户都具有自己所拥有的权限授予其他用户的权利,而不论其他用户是否拥有该权限

grant select,update on mytest.student to 'wang'@'localhost' identified by '123' with grant option

(2)限制权限

在with子句中的with关键字后面紧跟的是max_queries_per_hour等,表示限制

grant select on mytest.student to 'wang'@'localhost' with max_queries_per_hour

权限的撤销

可以使用revoke语句撤销一个用户的权限,此用户不会被删除

语法:

revoke <权限类型> [(<列名>)] [,<权限类型>[(<列名>)]]....
on <对象> <权限名> from <用户1>.....
revoke all privileges ,grant option from user <用户>....
revoke select on mytest.students from 'xiaoming'@'localhost'


相关文章
|
5天前
|
弹性计算 安全 API
访问控制(RAM)|凭证安全管理与最佳实践
本文分享将为您介绍从访问云资源的人员/程序身份两种身份类型,介绍云上凭证的认证方式、安全风险及凭证管理的最佳实践。
102505 7
|
5天前
|
安全 关系型数据库 MySQL
Mysql基础第三十一天,安全管理
Mysql基础第三十一天,安全管理
25 0
Mysql基础第三十一天,安全管理
|
10月前
|
安全 关系型数据库 MySQL
MySQL数据库实验七 MySQL安全管理
MySQL数据库实验七 MySQL安全管理
135 0
|
9月前
|
安全 关系型数据库 MySQL
MySQL安全与权限管理:保障数据安全与访问控制
本文深入探讨了MySQL数据库的安全与权限管理,通过详细的代码示例,介绍了用户与权限的概念,权限管理与访问控制的方法,以及数据库安全性策略的制定与实施。MySQL提供了强大的安全性功能,能够帮助管理员保护数据库的数据安全和限制用户的访问权限。了解如何创建用户、授予权限,以及如何制定数据库安全性策略,将使管理员能够有效地管理和保护数据库,降低潜在的安全风险。
464 0
|
5天前
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**
|
5天前
|
网络虚拟化 数据安全/隐私保护 数据中心
【专栏】对比了思科与华为网络设备的基本配置、接口、VLAN、路由、访问控制列表及其它关键命令
【4月更文挑战第28天】本文对比了思科与华为网络设备的基本配置、接口、VLAN、路由、访问控制列表及其它关键命令。尽管两者在很多操作上相似,如设备命名(思科:`hostname`,华为:`sysname`)、查看版本信息(思科:`show version`,华为:`display version`),但在某些方面存在差异,如接口速率设置(两者都使用`speed`和`duplex`,但命令结构略有不同)和VLAN配置(华为的`port hybrid`命令)。
|
5天前
|
网络协议 网络安全 网络性能优化
网络技术基础(14)——ACL访问控制列表
【3月更文挑战第3天】刚加完班又去南京出差了,实在是太忙了。。。。
|
9月前
|
网络安全 数据安全/隐私保护
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
97 0
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
|
安全 网络虚拟化 数据安全/隐私保护
华为ensp模拟器 配置ACL访问控制列表
华为ensp模拟器,模拟配置acl访问规则,配置acl访问规则的详细解释和操作。
华为ensp模拟器 配置ACL访问控制列表