SQL语言——安全性

来源:互联网 发布:mpu9250 九轴融合算法 编辑:程序博客网 时间:2024/05/01 20:33

安全性

/*        1. DBMS的安全机制        -- 自主安全性机制:存取控制        -- 强制安全性控制        -- 推断控制机制        -- 数据加密存储机制    */        /*        2. 自主安全性机制        -- 权限控制                -- 访问规则            DBMS将权利和用户(账户)结合在一起,形成一个访问规则表可以实现对数据库的安全性控制                        AccessRules ::=(S , O , t , P)            -- S : 请求主体(用户)             -- O : 访问对象            -- t : 访问权利            -- P : 谓词                        S用户在满足P条件下,对O有t的权利                        - Access Rules通常存放在数据字典或称系统目录中,构成了所有用户对DB访问权利            - 用户多时,可以按用户组建立访问权限            - 访问对象:属性/字段、记录/元组、关系、数据库            - 权利:包括创建、增、删、改、查等            - 谓词:拥有权利需满足的条件    */    -- e.g.    -- 员工管理数据库的安全性控制    -- employee(pid,pname,page,psex,psalary,did,head)        -- 要求        -- 员工管理人员:能访问所有人员        -- 收发人员:只能访问员工的基本信息        -- 每个员工:可访问自己的记录,但不能修改        -- 部门领导:能够查询其所有领导部门人员的所有情况,只读        -- 高层领导:可访问所有内容,只读
SOtP员工管理人员employee读、删、改、查 收发人员employee(pname,did)读 高级领导employee读 员工employee读pid = userId部门领导employee读head = userId
-- 3. 安全性的实现方式    -- 存储矩阵    -- 视图    CREATE empV1 AS SELECT * FROM employee where headId = :userId;    -- 4. 用户与权利/*    关系级别(普通用户) ←—— 账户级别(程序员用户) ←—— 超级用户(DBA)    级别1 SELECT :读    级别2 MODIFY :更新        -- INSERT        -- UPDATE        -- DELETE    级别3 CREATE :创建        -- CREATE        -- ALTER        -- DROP    级别高的拥有级别低的权限        授权命令    GRANT {ALL PRIVILEGES | privilege {,prvilege...}}        ON [TABLE] tablename | viewname        TO {PUBLIC | user-id{,user-id...}}        [WITH GRANT OPTION];        user-id , 某个用户账户,由DBA创建的合法账户    public  , 允许所有有效用户使用授予的权利    privilege 是下面权利        SELECT | INSERT | UPDATE | DELETE | ALL PRIVILEGES    WITH GRANT OPTION 选项是允许被授予者传播这些权利*/    GRANT ALL PRIVILEGES ON employee TO emp2001;    GRANT SELECT ON empV2 TO emp5001;    /*    收回权利    REVOKE {ALL PRIVILEGES | priv{,priv...}}        ON tablename | viewname        FROM {PUBLIC | user {,user...}};    -- e.g.    REVOKE SELECT ON employee FROM userB;    */
0 0
原创粉丝点击