第1关:数据库安全
任务描述
下面为某部门数据库安全策略 订单数据库中包括名为代理商,客户,产品,订单,订货项目等5个数据表。
- 数据库维护人员(1人):可对订单数据库进行任何操作。 账号名称:system_dbowner,允许任何ip通过此用户连接数据库,密码为usercode1
- 数据录入人员(2人):可对订单数据库中所有表进行插入、删除、更新操作,不能创建与修改表结构及其它授权等操作。 账号名称:datarecorder1, datarecorder2,允许任何ip通过此用户连接数据库,密码为usercode1
- 订单管理人员(2人):能对订单数据库中的订单表和项目表进行插入、删除、更新操作,其它表仅能查询。不能创建与修改表结构及其它授权等操作。 账号名称:order_1,order_2,允许任何ip通过此用户连接数据库,密码为usercode1
- 客户管理人员(2人):能对订单数据库中的代理商表和客户表进行插入、删除、更新,其它表仅能查询。不能创建与修改表结构及其它授权等操作。 账号名称:customer_1, customer_2,允许任何ip通过此用户连接数据库,密码为usercode1 要求: (1)写sql语句实现。合理分配用户权限。 (2)为了能在educoder平台上正确进行测试,所有新增用户密码统一设置为usercode1
参考代码
/*
1、数据库维护人员(1人):可对订单数据库进行任何操作。
账号名称:system_dbowner,密码为usercode1,允许任何ip通过此用户连接数据库
*/
CREATE USER system_dbowner IDENTIFIED BY 'usercode1';
grant all on 订单数据库.* to system_dbowner;
flush privileges;
/*
2、数据录入人员(2人):可对订单数据库中所有表进行插入、删除、更新操作,
(注意:为了顺利进行删除更新操作,也需要能有查询权限)
不能创建与修改表结构及其它授权等操作。
账号名称:datarecorder1, datarecorder2,密码为usercode1,允许任何ip通过此用户连接数据库
*/
CREATE USER datarecorder2 IDENTIFIED BY 'usercode1';
grant select,insert,delete,update on 订单数据库.* to datarecorder2;
flush privileges;
CREATE USER datarecorder1 IDENTIFIED BY 'usercode1';
grant select,insert,delete,update on 订单数据库.* to datarecorder1;
flush privileges;
/*
3、订单管理人员(2人):能对订单数据库中的订单表和订货项目表进行插入、删除、更新操作,
其它表仅能查询(注意:为了顺利进行删除更新操作,订单表和订货项目表也需要能有查询权限)。
不能创建与修改表结构及其它授权等操作。
账号名称:order_1,order_2,密码为usercode1,允许任何ip通过此用户连接数据库
*/
CREATE USER order_1 IDENTIFIED BY 'usercode1';
grant select on 订单数据库.* to order_1;
grant insert,delete,update on 订单数据库.订货项目 to order_1;
grant insert,delete,update on 订单数据库.订单 to order_1;
flush privileges;
CREATE USER order_2 IDENTIFIED BY 'usercode1';
grant select on 订单数据库.* to order_2;
grant insert,delete,update on 订单数据库.订单 to order_2;
grant insert,delete,update on 订单数据库.订货项目 to order_2;
flush privileges;
/*
4、客户管理人员(2人):能对订单数据库中的代理商表和客户表进行插入、删除、更新,
其它表仅能查询(注意:为了顺利进行删除更新操作,代理商表和客户表也需要能有查询权限)。
不能创建与修改表结构及其它授权等操作。
账号名称:customer_1, customer_2,密码为usercode1,允许任何ip通过此用户连接数据库
*/
CREATE USER customer_1 IDENTIFIED BY 'usercode1';
grant select on 订单数据库.* to customer_1;
grant insert,delete,update on 订单数据库.代理商 to customer_1;
grant insert,delete,update on 订单数据库.客户 to customer_1;
flush privileges;
CREATE USER customer_2 IDENTIFIED BY 'usercode1';
grant select on 订单数据库.* to customer_2;
grant insert,delete,update on 订单数据库.代理商 to customer_2;
grant insert,delete,update on 订单数据库.客户 to customer_2;
flush privileges;