视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据库安全管理_MySQL
2020-11-09 17:38:23 责编:小采
文档


为了确保数据库平稳可靠运行,我们需进行维护和管理,这是每一位数据库管理员的职责。下面分几个专题分别介绍。

数据库安全管理
MySQL数据库通过用户和密码来控制用户对数据库的访问,当我们新安装了一个数据库服务器时,MySQL的权限表设置是很不安全,它默认允许任何人不需要密码就可访问数据库。所以我们安装好服务器后第一件需要做的就是设置用户密码。

在MySQL中的mysql数据库的user数据表中存有用户的帐号信息,在初始状态下已存在root和一些匿名用户,且所有用户都没有设置密码。该数据表的这些用户信息是通过一个mysql_install_db脚本安装的。该表的主要列有:

User,连接数据库的用户名。

Host,允许连接到数据库服务器的主机名,“%”通配符代表所有主机。

Password,连接密码,已加密。

其它权限列,以“Y”或“N”标识是否有效。

在这种状态下的数据库是极不安全的,我们可用以下命令轻易地访问数据库:

% mysql -h localhost -u root #通过本地主机,root用户访问,不需要密码验证
% mysql -h localhost #通过本地主机,匿名用户访问,不需要密码验证
设置MySQL用户帐号密码的方法有三种:

使用mysqladmin程序:

% mysqladmin -h localhost -u root password "password" #设置在本地以root身分登录的密码
% mysqladmin -h remote -u root password "password" #设置远程主机以root身分登录的密码
在初始设置时,这两条语句都要运行,以确保数据库本地访问和网络访问的安全。

通过set password这条SQL语句设置:

mysql> set password for 'root'@'localhost' = password('password');
mysql> set password for 'root'@'remote' = password('password');
直接修改user权限表:

mysql> use mysql;
mysql> update user set password=password('password') where user='root';
mysql> flush privileges; #重载权限表,使修改马上生效
MySQL使用驻留在内存中的权限表拷贝来进行访问控制,当使用mysqladmin和set password设置密码,MySQL会监察到权限表已被修改,它自动重载该表。而用update的方式,MySQL就监察不到变化,需手动用flush privileges命令刷新内存中的权限表,以使它马上生效。

为root用户设置密码后,如果需以root身份连接数据库,就需验证密码。我们可用以下语句连接数据库:

% mysql -u root -p
Enter password: #输入root的密码
在user表中,user列为空的为匿名用户。它也是没有密码的,我们需为它们设置一个密码,或干脆把它们删除。在windows系统上的本地匿名用户帐号和root用户有着同样的权限,这是一个很大的安全漏洞。应该把它删除或把权限削弱。

下载本文
显示全文
专题