文章目录
CREATE TABLE warehouse (
w_id SMALLINT,
w_name VARCHAR(10),
w_street_1 VARCHAR(20),
w_street_2 VARCHAR(20),
w_city VARCHAR(20),
w_state CHAR(2),
w_zip CHAR(9),
w_tax DECIMAL(4,2),
w_ytd DECIMAL(12,2)
);
11. 访问控制
SQL可以针对不同的数据库对象赋予不同的权限,这样就可以限制用户对数据的不必要访问,提高数据访问的安全性。
常见的SQL权限如下:
SELECT/UPDATE/DELETE/INSERT
:访问、修改基本表或视图的权限;REFERENCES
:在基本表上创建外键约束的权限;TRIGGER
:在基本表上创建触发器的权限;EXECUTE
:存储过程的执行权限;GRANT
:用户可以通过GRANT语句来授予权限。REVOKE
:用户可以通过REVOKE语句来收回权限。
例2-48:将warehouse表的SELECT权限授予用户U1。具体语句如下:
CREATE SELECT ON TABLE warehouse TO U1;
例2-49:将warehouse表的(w_id,w_name)列的SELECT权限授予用户U1。具体语句如下:
CREATE SELECT (w_id, w_name) ON TABLE warehouse TO U1;
例2-50:将warehouse表的SELECT权限从用户U1收回。具体语句如下:
REVOKE SELECT ON TABLE warehouse TO U1;
例2-51:将warehouse表的(w_id,w_name)列的SELECT权限从用户U1收回。具体语句如下:
REVOKE SELECT (w_id, w_name) ON TABLE warehouse TO U1;