设计师自己做网站,安徽网站建设推荐-晨飞网络,怎么自己搭建梯子,特种作业证查询系统入口信息系统工程领域对数据安全的要求比较高#xff0c;MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中#xff0c;而角色与权限设计不仅关乎数据库中数据保密性的性能高低#xff0c;也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时#xf… 信息系统工程领域对数据安全的要求比较高MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中而角色与权限设计不仅关乎数据库中数据保密性的性能高低也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时为了保证数据的安全性和可靠性提出通过设置角色和权限实现对数据的安全访问然后通过编写代码进行实验以验证此方式解决数据库中数据安全问题的有效性。 目录
1 存放用户账户的权限表
2 账户和账户权限设计
2.1 从 Windows 命令行登录到 MySQL 数据库中
2.2 创建用户并赋予权限 在当今大数据时代各行各业都离不开计算机信息技术特别是利用信息系统应用软件对业务进行处理系统后台会存放大量数据这也使得数据变得越来越重要而作为数据的主要存储器之一的数据库管理系统就承担起了保护数据的重要角色。在开发信息系统过程中对数据库中数据的安全设计必须给予重视才能提高数据的安全性。
目前主流的数据库管理系统有 Oracle、SQL Server、MySQL等任何一个数据库都要考虑数据安全方面的设计此文以 MySQL 数据库管理系统为例对数据安全进行论述其中一类安全问题是指数据库中敏感数据被多个合法用户查询获取在使用过程中发生泄密事故或恶意篡改数据库管理员需要追踪和熟悉哪些用户曾访问数据以及这些用户的访问权限和操作用于解决相关事故责任。
对数据库中存放的关键数据基本上都有保密要求即限制部分用户对数据的访问在访问的过程中也会限制用户的访问权限不同用户根据角色的不同管理员要设置不同的访问权限以保证数据库中数据的安全。
1 存放用户账户的权限表
为了方便管理员管理用户需要为众多用户设置账户和访问权限同时为了方便管理数据库管理系统设置了重要的表存放账户和权限在 MySQL 数据库中与用户及权限相关的表主要有 4 个即 user 表、db 表、tables_priv 表和columns_priv 表。
user 表是最重要的表包含用户、权限、安全和资源控制 4 类共计 42 个字段用户包含用户名、主机名和密码。权限共计 29 个以 _priv 结尾例如 update_priv 等。针对user 表里面存放全局级的权限。
db 表是非常重要的表之一存放为用户指定的某个或某些数据库的操作权限。仅存放用户名、主机名及权限。针对 db 表里面存放数据库级的权限。
tables_priv 表用于存放固定数据库下的一个表和多个表的用户和用户权限信息。
columns_priv表用于存放固定数据库下固定表的一列或多列的用户和用户权限信息。
4 个表均存放用户和权限具体区别见如表 1 所示。
2 账户和账户权限设计
在 MySQL 数据库管理系统下账户的创建和验证与其他数据库管理系统有所不同在单机系统中为了能够进行验证数据库设计时需要在 Windows 命令行下登录才能够进行验证。 2.1 从 Windows 命令行登录到 MySQL 数据库中
登录过程如下开始—运行—输入cmd进入Windows命令行 -- 输入参数即登录命令MySQL–u 用户名 –h 主机名 –p 密码第一次登录创建用户账户需要超级管理员root 用户进行登录。
注意事项登录命令如果执行必须切换到 MySQL 的安装文件 bin 目录下因为很多用户在安装 MySQL 时并没有配置 path 变量此时Windows 命令行无法识别命名所以无法执行。例如C:\Users\Administratormysql -u root -hlocalhost–p错误提示“mysql”不是内部或外部命令也不是可运行的程序或批处理文件。
另外如果 MySQL 服务器未开启也会显示命令无效所以也必须保证数据库服务器处于开启的状态。下面是以超级管理员进入 MySQL 数据库管理系统在第一次创建用户的时候仅有 root 超级管理员才有权限创建其他用户输入密码便可以登录到 MySQL 数据库命令行。登录过程如图 1所示。
输入密码即可进入 MySQL 命令行。代码为 c:\wamp\bin\mysql\mysql5.5.24\binmysql -u root -hlocalhost -p Enter password:-- 此处输入密码后面出现 MySQL 的欢迎界面和连接所花费的时间等。 mysql-- 最终以此命令符出现此时光标会在 mysql后面停留等待输入命令。 2.2 创建用户并赋予权限
在 MySQL 数据库管理系统下在此建立一个数据库 b和数据库a在数据库b下建立一个数据表book并在book数据表中设计一个整型字段 bid 代表图书编号可以输入一条记录为 1为了进行验证再建立一个 book2 数据表字段和记录可以随意设计在此利用简单的数据表展示创建用 户账户并赋予权限的过程。部分代码为 Create database a; Create database b; create table book(bidint); insert into book values(1); create table book2(bidint,bname char(4));
下面设计第一个用户 a1密码为test1此用户的权限设计为仅能操作数据库 b利用如下格式设计代码即利用 grant 创建新用户并赋予权限语法规则Grant 权限类型 on 数据库 . 数据表 to 用户名 主机名 identifiedby password[,userhost identified by password][with grantoption]。注意权限类型表示赋予用户的权限类型例如select、alter、reload、excute、event 等数据库 . 数据表代表权限的级别一个 * 代表当前数据库中的所有表*.*代表所有数据库下的所有表db_name.* 代表固定数据库中的所有表db_name.tbl_name代表固定数据库中的固定表和视图db_name.routine_name代表固定数据库中的固定存储过程和函数userhost 代表用户名和主机名password 代表密码而[with grant option] ]则代表该用户可以对其他用户赋予权限其他命令为固定写法。此代码为 grant all on b.* toa1localhostidentified bytest1;
具体代码即执行过程如图 2 所示。
下面设计第二个用户 a2密码为test2设计权限为仅能查看数据库 b 下的 book 表此代码为 grant select on b.book toa2localhostidentified bytest2;
具体代码即执行过程如图 3 所示。