第四章 数据库安全性

数据库安全性控制思维导图

授权:授予与收回

用户可以“自主”地决定把数据的存取权限授予何人,决定是否也将“授权”的权限授予别人。这样的存取控制就是自主存取控制。

1. 授予权限 GRANT

  • 一般格式
    GRANT <权限>
    ON <对象类型><对象名>
    TO <用户>
    [WITH GRANT OPTION];

将对指定操作对象的指定操作权限授予指定的用户。
GRANT发出者:数据库管理员 | 数据库对象创建者(属主owner) | 已拥有该权限的用户
指定WITH GRANT OPTION子句,则获得该权限的用户可把这种权限再授予其它用户。

    /* 把对表SC的查询权限授予所有用户 */
    GRANT SELECT
    ON TABLE SC
    TO PUBLIC;
    
    /* 把查询Student表和修改学生学号的权限授给用户U1, U2 
       对属性列授权时必须明确指出相应的属性列名  */
    GRANT UPDATE(Sno), SELECT
    ON TABLE Student
    TO U1, U2;

2. 收回权限 REVOKE

  • 一般格式
    REVOKE <权限>
    ON <对象类型><对象名>
    FROM <用户>
    [CASCADE | RESTRICT];
    /* 把用户U1修改学生学号的权限收回 */
    REVOKE UPDATE(Sno)
    ON TABLE Student
    FROM U1;
    
    /* 将用户U5的INSERT权限收回同时,级联收回U6和U7的INSERT权限 */
    REVOKE INSERT
    ON TABLE SC
    FROM U5 CASCADE;

3. 创建数据库模式的权限

    CREATE USER <username> [WITH] [DBA | RESOURCE | CONNECT];

只有系统的超级用户才有权创建一个新的数据库用户。
新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA。
CREATE USER 命令中如果没有指定创建的新用户的权限,默认CONNECT。

  • 拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。
  • 拥有RESOURCE权限的用户能创建基本表和视图。
  • 拥有DBA权限的用户是系统中的超级用户。

数据库角色

数据库角色是一组权限的集合。使用角色来管理数据库权限可以简化授权的过程,使自主授权的执行更加灵活、方便。

1. 角色的创建

    CREATE ROLE <角色名>
    
    /* 创建角色R1 */
    CREATE ROLE R1;

2. 给角色授权

    GRANT <权限>
    ON <对象类型><对象名>
    TO <角色>
    
    /* 使角色1拥有Student表的SELECT、UPDATE、INSERT权限 */
    GRANT SELECT, UPDATE, INSERT
    ON TABLE Student
    TO R1;

3. 将一个角色授予其他的角色或用户

    GRANT <角色1> [,<角色2>]
    TO <角色3> [,<用户1>] 
    [WITH ADMIN OPTION];
    
    /* 将角色R1授予王平、张明、赵玲,使他们拥有R1的全部权限 */
    GRANT R1
    TO 王平, 张明, 赵玲;
    
    /* 一次性通过R1收回王平的三个权限 */
    REVOKE R1
    FROM 王平;

4. 角色权限的收回

    REVOKE <权限>
    ON <对象类型><对象名>
    FROM <角色>   
    
    /* 收回角色R1的这三个权限 */
    REVOKE SELECT, UPDATE, INSERT
    ON TABLE Student
    FROM R1;

视图机制

为不同用户定义不同的视图,把数据对象限制在一定的范围内。
视图机制间接地实现支持存取谓词的用户权限定义。

    CREATE VIEW CS_Student  /* 先建立视图CS_Student */
    AS
    SELECT *
    FROM Student
    WHERE Sdept = 'CS':
    
    GRANT SELECT            /* 王平老师只能检索计算机系学生的信息 */
    ON CS_Student
    TO 王平;
    
    GRANT ALL PRIVILEGES    /* 系主任张明具有检索和增删计算机系学生信息的所有权限 */
    ON CS_Student
    TO 张明;

审计

审计功能把用户对数据库的所有操作自动记录下来放入审计日志中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容。

    /* 对修改SC表结构或修改SC表数据的操作进行审计 */
    AUDIT ALTER, UPDATE
    ON SC;
    
    /* 取消对SC表的一切审计 */
    NOAUDIT ALTER, UPDATE
    ON SC;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352