sql语句关于数据库安全性

 cc评估保证级(EAL)的划分

评估保证级 定义 TCSEC安全级别(近似相当)
EAL1 功能测试
EAL2 结构测试 C1
EAL3 系统地测试和检查 C2
EAL4 系统地涉及,测试和复查 B1
EAL5 半形式化涉及和测试 B2
EAL6 半形式化验证的设计和测试 B3
EAL7 形式化验证的设计和测试 A1

 关系数据库系统中的存取权限

对象类型 对象 操作类型
模式 CREATE SCHEMA
数据库 基本表 CREATE TABLE,ALTER TABLE
模式 视图 CREATE VIEW
索引 CREATE INDEX

数据 基本表和视图 SELECT,INSERT,UPDATE,DELETE,
REFERENCES,ALL PRIVILEGES
属性列 SELECT,INSERT,UPDATE,REFERENCES,
ALL PRIVILEGES
4.2.2 授予与收回

1.GRANT
GRANT语句的一般格式为:
GRANT<权限>[,<权限>]…
ON<对象类型><对象名>[,<对象类型><对象名>]…
TO<用户>[,<用户>]…
[WITH GRANT OPTION];

例4.1 把查询Student表的权限授给用户U1.
GRANT SELECT
ON TABLE Student
TO U1;
例4.2 把对Student表和Course表的全部操作权限授予用户U2和U3.
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U2,U3;
例4.3 把对表SC的查询权限授予所有用户.
GRANT SELECT
ON TABLE SC
TO PUBLIC;
例4.4 把查询Student表和修改学生学号的权限授给用户U4.
GRANT UPDATE(Sno),SELECT
ON TABLE Student
TO U4;
例4.5 把对表SC的INSERT 权限授予U5用户,并允许将此权限再授予其他用户.
GRANT INSERT
ON TABLE SC
TO U5
WITH GRANT OPTION;
例4.6 U5可以将此权限授予U6
GRANT INSERT
ON TABLE SC
TO U6
WITH GRANT OPTION;
例4.7
GRANT INSERT
ON TABLE SC
TO U7;

2.REVOKE
一般格式:
REVOKE<权限>[,<权限>]…
ON<对象类型><对象名>[,<对象类型><对象名>]…
FROM<用户>[.<用户>]…[CASCADE|RESTRICT];

例4.8 把用户U4修改学生学号的权限收回.
REVOKE UPDATE(Sno)
ON TABLE Student
FROM U4;
例4.9 收回所有用户对表SC的查询权限.
REVOKE SELECT
ON TABLE SC
FROM PUBLIC;
例4.10 把用户U5对SC表的INSERT权限收回.
REVOKE INSERT
ON TABLE SC
FROM U5 CASCADE;

3.创建数据库模式的权限
CREATE USER语句一般格式如下:
CREATE USER [WITH][DBA | RESOURCE | CONNECT];
只有系统的超级用户才有权创建一个新的数据库用户.
新创建的数据库用户有三种权限:CONNECT,RESOURCE和DBA.
拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登陆数据库.
拥有RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主,但不能创建模式,不能创建新的用户.
拥有DBA权限的用户是系统种的超级用户,可以创建新的用户,创建模式,创建基本表和视图等.

4.2.5 数据库角色
1.角色的创建
CREATE ROLE <角色名>
2.给角色授权
GRANT <权限>[,<权限>]…
ON<对象类型>对象名
TO<角色>[,<角色>]…
3.将一个角色授予其他的角色或用户
GRANT<角色1>[,<角色2>]…
TO <角色 3>[,<用户1>]…
[WITH ADMIN OPTON]
4.角色权限的收回
REVOKE <权限>[,<权限>]…
ON <对象类型><对象名>
FROM <角色>[,<角色>]…

例4.11 通过角色来实现将一组权限授予一个用户.
1.首先创建一个角色R1.
CREATE ROLE R1;
2.然后使用GRANT语句,使角色R1拥有Student表的SELECT,UPDATE,INSERT权限.
GRANT SELECT,UPDATE,INSERT
ON TABLE Student
TO R1;
3.将这个角色授予王平,张明,赵玲,使他们具有角色R1所包含的全部权限.
GRANT R1
TO 王平,张明,赵玲;
4.当然,也可以一次性地通过R1来收回王平的这三个权限.
REVOKE R1
FROM 王平;

例4.12 角色的权限修改.
GRANT DELETE
ON TABLE Student
TO R1
例4.13
REVOKE SELECT
ON TABLE Student
FROM R1;

4.3 视图机制

例4.14 建立计算机系学生的视图,把对该视图的SELECT权限授予王平,把该视图上的所有操作权限授予张明.
CREATE VIEW CS_Student /先建立视图CS_Student/
AS
SELECT *
FROM Student
WHERE Sdept=‘CS’;

 GRANG SELECT                        /*王平老师只能检索计算机系学生的信息*/ON CS_StudentTO 王平;GRANT ALL PRIVILEGES                /*系主任具有检索和增删改计算机系学生信息的所有权限*/ON CS_StudentTO 张明;

4.4 审计

例4.15 对修改SC表结构或修改SC表数据的操作进行审计.AUDIT ALTER,UPDAEON    SC;
例4.16 取消对SC表的一切审计.NOAUDIT ALTER,UPDAEON     SC;

4.5 数据加密
1.存储加密
2.传输加密

关注和评论,是对我的鼓励和支持,我会竭尽所能帮助需要的朋友们

SQL语句关于数据库安全性相关推荐

  1. 3,SQL语句及数据库优化

     1,统一SQL语句的写法 对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的. 所以封装成复用方法,用标准模板来控制. select*from dual select*From ...

  2. 一条SQL语句查询数据库中的所有表、存储过程、触发器

    一条SQL语句查询数据库中的所有表.存储过程.触发器 (sysobjects表信息)   该条语句查询返回所有的用户表 select * from sysobjects where xtype='u' ...

  3. sql语句提高数据库查询效率

    可以通过以下多个方面优化sql语句提高数据库查询效率 1. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2. 应尽量避免在 where 子 ...

  4. 使用了无效的sql语句_使用SQL语句创建数据库

    使用SQL语句创建数据库(SQL Server 2008) 创建一个名为'DA_sales'的数据库. 主文件组'DA_sales_data'(初始大小:5MB;最大值:200MB;自动增长率:10% ...

  5. 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询

    Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询 外部数据 当前项目表格数据(表名:service_info) 将外部数据转为Table表格,与servi ...

  6. oracle 查看用户日志,Oracle查看用户操作sql语句以及数据库日志

    --查看日志文件 select member from v$logfile; --查看表空间使用情况 SELECT SUM(bytes) / (1024 * 1024) AS free_space, ...

  7. 使用SQL语句创建数据库和数据库表

    使用SQL语句创建数据库和数据库表 内容如下: 创建数据库 创建数据库表 1.创建数据库的语句 创建数据库,需要创建数据库的数据文件和日志文件 其中一些语句含义如下: 语句 代表含义 name 逻辑文 ...

  8. 用SQL语句向数据库添加date类型字段

    在开发的时候,经常要写条SQL语句将信息插入表中,插入的数据如果字段是date类型,就必须将date类型转换成字符串String类型在通过sql语句插入数据库.这是我找到添加该字段的方法!我的解决方法 ...

  9. MySQL8.0 通过data文件和SQL语句恢复数据库

    一.通过data文件恢复data里的数据库 Mysql里的数据一般会自动保存到C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,卸载前要将其备份. 目前进测试 ...

最新文章

  1. 达摩院副院长金榕:中国 AI 将向何处?热潮有回落,但不应沮丧
  2. [19/04/04-星期四] IO技术_CommonsIO(通用IO,别人造的轮子,FileUtils类 操作文件 IOUtilsl类 操作里边的内容 )...
  3. [OpenCV] -- win7下配置OpenCV的Qt开发环境
  4. windows端口查看及进程查找
  5. 打开ADS提示23111@localhost后提示无法与执照伺服机连线,怎么解决?
  6. ×××技术在ATM机无线组网中的应用
  7. 关于Android SDK工具Lint的误报分析
  8. Jquery打叉怎么办
  9. ajax 直接向后台发送请求,通过ajax异步向后端发送请求,响应请求向前端传送json格式数据的实现思路...
  10. goldendb基于mysql_中兴通讯GoldenDB在中信银行信用卡核心应用实践
  11. [转载]从零开始学习OpenGL ES之五 – 材质
  12. python植物大战僵尸辅助_GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!...
  13. 一键设置 DeviceAdmin/ProfileOwner/DeviceOwner 应用
  14. 复杂适应系统和swarm简介
  15. 神经网络常用术语(Updating)
  16. LuceneSolrElasticSearch-面试题
  17. 三年来我听过的耳机——顺便侃侃我的观念
  18. 网曝小米HR威胁员工不许仲裁,称“仲裁会留记录,影响子女将来入职小米”!...
  19. 李开复给中国大学生的第四封信——大学四年应是这样度过
  20. 如何注册 @msn邮箱

热门文章

  1. VBA中的数据字典,可以理解为Java中的Map
  2. 日语学习 「バージョン」 version と 「リビジョン」 revision
  3. 2012年3月份工作总结 ~ 之 ~ PDF 作业对应 (虽然这个作业没有什么意思,但是非常值得总结)
  4. 如何查看光驱硬盘托架的尺寸_「二次利用」没想到废光驱电机还可以这样利用...
  5. 【Oracle】恢复临时表空间数据文件
  6. node解决通过npm无法安装forever的方法
  7. Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法
  8. 解决telnet: connect to address 127.0.0.1: Connection refused的错误信息问题
  9. Android ADB设备离线,无法发出命令
  10. OwinStartup不触发