MySQL – 不要为运行应用程序的用户分配DBA权限
2013-09-24 10:10
337 查看
分配合理的数据库权限对于维护系统安全至关重要。尤其是,一定要将网络应用程序和数据库管理功能所需的权限分开,以确保系统安全。我们看到有些客户,误设账号权限或将所有权限分配给一个账号(GRANT ALL in MySQL),这真的是没有见识,原因如下:
首先,很明显的一个原因就是,每个账号或用户仅授予其所需的权限,不多授权。这在安全设计中,是一个很关键的因素。这意味着,用户仅在其所用的数据库中,有选、改、增的权限,必要时,可赋予删除权限。而不是将用户权限设置为*.*,因为这样的话,他便可以阅读用户表及密码等。
其次,数据库管理员账号可以删除数据库、更改表、更改服务器配置等等。请记住如果有SQL注入攻击或您的应用程序有bug的话,那么黑客便能够轻易地通过该账号连接到数据库,所以,要一直假设该用户账号可能会被窃取,这样可以减少系统安全危害。
再次,为每个应用程序或子系统分设独立账号,这样不但能轻易地排除故障,还有利于分配不同的安全权限。这样,您的搜索引擎、备份监控等都可以采用不同的账号和不同的随机密码。您还应该分设独立的数据库管理员账号,使每个数据库管理员用户有单独账户,这样可以提高可审计性、可追踪性,便于了解谁做了什么事情。如果员工离职,也能够轻易地应付。
第四,数据库管理员账号可以逾越我们在MySQL从机上设置的只读权限,进而更改本地数据。(而数据修改仅允许在主机器上操作)。但是,任何有超级权限的用户都不受只读权限的限制,当有人使用这些账号更改数据、导致双重键值错误或导致从机停运等等,客户便碰到麻烦了。
最后,DBA账号还可以运行一些危害性很大的命令,如LOAD INFILE,只要是MySQL所连接的服务器上的文件,它都能阅读得到。举例来说,我们看到过黑客使用该命令阅读/etc/password文件,这是当某位用户使用自己的DBA账号登陆运行网络应用程序时,黑客便加以利用,通过SQL注入进攻来阅读该文件。
总结,请在每个层次上留心您的数据库安全设置,包括配置和文件权限,但是,最重要的是,合理设置数据库用户及其权限。分设独立的数据库管理员账号,每人一个帐号。每个应用程序和系统都设置独立的账号。您若使用的是MySQL数据库,我们可随时提供咨询服务及安全审计意见,以帮助您实现系统安全。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点击查看)
首先,很明显的一个原因就是,每个账号或用户仅授予其所需的权限,不多授权。这在安全设计中,是一个很关键的因素。这意味着,用户仅在其所用的数据库中,有选、改、增的权限,必要时,可赋予删除权限。而不是将用户权限设置为*.*,因为这样的话,他便可以阅读用户表及密码等。
其次,数据库管理员账号可以删除数据库、更改表、更改服务器配置等等。请记住如果有SQL注入攻击或您的应用程序有bug的话,那么黑客便能够轻易地通过该账号连接到数据库,所以,要一直假设该用户账号可能会被窃取,这样可以减少系统安全危害。
再次,为每个应用程序或子系统分设独立账号,这样不但能轻易地排除故障,还有利于分配不同的安全权限。这样,您的搜索引擎、备份监控等都可以采用不同的账号和不同的随机密码。您还应该分设独立的数据库管理员账号,使每个数据库管理员用户有单独账户,这样可以提高可审计性、可追踪性,便于了解谁做了什么事情。如果员工离职,也能够轻易地应付。
第四,数据库管理员账号可以逾越我们在MySQL从机上设置的只读权限,进而更改本地数据。(而数据修改仅允许在主机器上操作)。但是,任何有超级权限的用户都不受只读权限的限制,当有人使用这些账号更改数据、导致双重键值错误或导致从机停运等等,客户便碰到麻烦了。
最后,DBA账号还可以运行一些危害性很大的命令,如LOAD INFILE,只要是MySQL所连接的服务器上的文件,它都能阅读得到。举例来说,我们看到过黑客使用该命令阅读/etc/password文件,这是当某位用户使用自己的DBA账号登陆运行网络应用程序时,黑客便加以利用,通过SQL注入进攻来阅读该文件。
总结,请在每个层次上留心您的数据库安全设置,包括配置和文件权限,但是,最重要的是,合理设置数据库用户及其权限。分设独立的数据库管理员账号,每人一个帐号。每个应用程序和系统都设置独立的账号。您若使用的是MySQL数据库,我们可随时提供咨询服务及安全审计意见,以帮助您实现系统安全。
(Authored by Steve Mushero / ChinaNetCloud CEO & CTO 本博客英文原文请点击查看)
相关文章推荐
- MySQL – 不要为运行应用程序的用户分配DBA权限
- MySQL创建普通用户、分配权限、删除用户、修改用户密码
- Mysql 新建用户并分配所有权限
- Windows下降权MYSQL和apche的运行级别(普通用户权限运行)
- Mysql用户密码设置修改和权限分配
- mysql 新增 删除用户和权限分配
- MySQL添加新用户、为用户创建数据库、为新用户分配权限
- 如何给mysql用户分配权限+增、删、改、查mysql用户
- MySql-建用户与分配权限
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
- MySQL添加新用户、为用户创建数据库、为新用户分配权限 标签: MySQL 2016-12-17 16:41 2768人阅读 评论(0) 收藏 举报 分类: =======学习心得=======
- Mysql用户密码设置修改和权限分配
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
- MySQL 用户权限分配 Grant 语法详解(转)
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限(重要)
- Mysql用户管理和权限分配
- MySQL 增加用户和分配权限
- mysql用户创建及权限分配