Originally posted by davey23uk
you can make the tablespace read-only
Making tablespace read only doesn't prevent making DDL changes, it just make changes to data dictionary

Code:
SQL> alter tablespace users read only;
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'USERS';

TABLESPACE_NAME                STATUS
------------------------------ ---------
USERS                          READ ONLY

SQL>  select table_name, tablespace_name from tabs where table_name = 'TEST1';

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEST1                          USERS

SQL> alter table test1 add (address varchar2(100));

Table altered.

SQL> desc test1
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER
 NAME                                               VARCHAR2(10)
 ADDRESS                                            VARCHAR2(100)

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'USERS';

TABLESPACE_NAME                STATUS
------------------------------ ---------
USERS                          READ ONLY


Sameer