SQL数据库数据控制由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能
其中,主要包括安全性控制、完整性控制
1.安全性控制数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏
保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据
即限定不同用户操作不同的数据对象的权限
存取权控制包括权力的授予、检查和撤消
权力授予和撤消命令由数据库管理员或特定应用人员使用
系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作
(1)权力授予:权力授有数据库管理员专用的授权和用户可用的授权两种形式
数据库管理员专用授权命令格式如下:|CONNECT |GRANT|RESOURCE|TO 用户名〔IDENTIFED BY 口令〕|DBA |其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授予指定的用户
若要同时授予某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定
另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力
但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力
例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授予权力:GRANT CONNECT TO SSE IDENTIFIED BY BD1928GRANT RESOURCE TO SSE用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:|SELECT ||INSERT ||DELETE |GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用户名|〔WITH GRANT OPTION〕|ALTER | |视图名| |PUBLIC||NDEX ||ALL |若对某一用户同时授予多种操作权力,则操作命令符号可用“,”相隔
PUBLIC 表示将权力授予数据库的所有用户,使用时要注意:任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他用户权力
例:如果将表student的查询权授予所有用户,可使用以下命令:GRANT SELECT ON student TO PUBLIC例:若将表subject的插入及修改权力授予用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION这里,UPDATE后面跟su_subject是指出其所能修改的列
(2)权力回收:权力回收是指回收指定用户原已授予的某些权力
与权力授予命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式
DBA专用的权力回收命令格式为:|CONNECT |REVOKE|RESOURCE|FROM用户名|DBA |用户可用的权力回收命令格式为:|SELECT ||INSERT ||DELETE |REVOKE|UPDATE(列名1〔,列名2〕…) |ON|表名 |FROM |用户名||ALTER | |视图名| |PUBLIC||INDEX ||ALL |例:回收用户SSE的DBA权力:REVOKE DBA FROM SSE2.完整性控制数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念
完整性控制的主要目的是防止语义上不正确的数据进入数据库
关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性
而完整性约束条件的定义主要是通过CREATE TABLE语句中的〔CHECK〕子句来完成
另外,还有一些辅助命令可以进行数据完整性保护
如UNIQUE(唯一性约束)和NOT NULL(非空约束),前者用于防止重复值进入数据库,后者用于防止空值
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。