6.7.3 表空间的读写权限
用户对表空间的访问权限有读写和只读两种方式。如果表空间处于读写状态,那么用户可以在表空间中创建数据库对象,可以删除其中的数据库对象,可以查看和修改数据库对象的信息。如果表空间处于只读状态,用户只能查看表空间中的数据,而不能对其进行修改。
将表空间的访问权限改为只读的主要目的是保护一些历史数据,禁止用户修改这些数据。一个更好的做法是,将只读表空间中的数据文件存放在CD或者DVD这类只读存储介质上,这样不仅可以保护表空间中的数据,而且可以节省磁盘空间。
表空间在创建后,默认处于读写状态,数据库管理员可以将表空间的状态设置为只读状态。除SYSTEM表空间和UNDO表空间外,其他表空间都可置为只读状态。例如,以下命令可以使表空间ts3变为只读状态:
SQL>ALTER TABLESPACE ts3 READ ONLY;
需要注意的是,当表空间处于只读状态时,用户在表空间上可以执行SELECT操作,不能执行DELETE、INSERT、CREATE等DML和DDL操作,但是有一条DDL命令比较特殊,这条命令是DROP。在只读表空间上可以通过DROP命令删除数据库对象。为了在只读表空间执行DML和DDL操作,需要将表空间的状态置为读写状态。例如,以下语句执行的结果是将表空间ts3置为读写状态:
SQL>ALTER TABLESPACE ts3 READ WRITE;