「数据库」 数据库安全

Posted by Dawn-K's Blog on June 4, 2020

数据库安全

授予权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# PUBLIC(全体用户)
grant  <权限>[,<权限>] 
          [on <对象类型> <对象名>]
          to <用户>[,<用户> ]
          [with grant option];

# 把查询Students表的权限授给用户wang
    grant select on table Students to wang;
# 把对StudentsSC表的所有访问权限授给全部用户
    grant all priviliges on table Students, SC to public;
# DBA把在数据库SC中建立表的权限授予用户zhao
    grant createtab on database SC to zhao;

# DBA、对象的建立者和经过with grant option授权的用户可以把他们对该对象具有的操作权限授予其它的合法用户
# 把对表SC的查询权限、修改成绩权限授给wangzhang, 并允许wangzhang将该权限授予他人
grant select, update(Grade) on table SC 
            to wang, zhang
            with grant option;

回收操作

1
2
3
4
5
6
7
8
9
revoke <权限>[,<权限>] 
              [on <对象类型> <对象名>]
              from <用户>[,<用户> ]
# 把用户wangzhang修改成绩的权限收回
     revoke update(Grade) on table SC from wang, zhang;
# 收回所有用户对SC表的查询授权
     revoke SELECT on TABLE SC from PUBLIC;

# :授权回收操作是级联的

视图机制

1
2
3
4
5
6
7
8
9
10
11
# 先建立计算机系学生的视图CS_Student
    CREATE VIEW CS_Student
        AS 
        SELECT 
        FROM   Student
        WHERE  Sdept=CS’;

# 在视图上进一步定义存取权限
    GRANT  SELECT  ON  CS_Student  TO USER1