欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据库用户创建规范

程序员文章站 2022-06-08 16:19:50
...

在Oracle数据库中,每一个用户一般都有自己的数据表空间、临时表空间和索引表空间等数据存储空间,而且你不能随意写到其他的表空

在Oracle数据库中,每一个用户一般都有自己的数据表空间、临时表空间和索引表空间等数据存储空间,而且你不能随意写到其他的表空间上。例如,我们常见到有表建立在users表空间上,更有甚者是建立在system表空间上的。不信的话,你去查一下自己的数据库。新用户的权限也需要严格控制,一般授予connect,resource两个角色,另外create view等权限可以根据需求添加。在10g中,resource角色有一个系统权限unlimited tablespace,需要最后手工去掉。

如果你需要对用户的资源等做限制,,如密码失效周期、用户最大会话连接数等,可以借助profile来实现。

这是数据库用户创建的规范。具体创建过程,我一步一步的列出来。

首先,创建用户所需要的存储数据的表空间和临时空间。

create tablespace TBS_MIKI datafile '/u01/oradata/servdb/datafile/tbs_miki01.dbf' size 10M;
create temporary tablespace TBS_MIKI_TEMP datafile '/u01/oradata/servdb/datafile/tbs_miki_temp01.dbf' size 10M;

注意表空间命名方式。

其次,创建新用户,如usr_miki 。

CREATE USER USR_MIKI IDENTIFIED BY USR_MIKI
DEFAULT TABLESPACE TBS_MIKI
TEMPORARY TABLESPACE TBS_MIKI_TEMP
PROFILE DEFAULT
QUOTA UNLIMITED ON TBS_MIKI;

最后,授予角色connect,resource

GRANT "CONNECT" TO USR_MIKI WITH ADMIN OPTION;
GRANT "RESOURCE" TO USR_MIKI WITH ADMIN OPTION;
ALTER USER USR_MIKI DEFAULT ROLE "CONNECT", "RESOURCE";

需要将unlimited tablespace去掉,因为10g2之后添加resource角色会自动加此系统权限。

revoke unlimited tablespace from usr_miki;

alter user USR_MIKI QUOTA UNLIMITED ON TBS_MIKI;

还需要一些权限,如创建视图、创建物化视图、创建同义词等,毕竟resource角色的权限还比较少。

通过这些步骤,我们创建了一个基本上符合开发、生产的规范的数据库用户。

这个用户拥有connect,resource 角色,所有数据将只能写入到tbs_miki 表空间上。如果您需要新加一个表空间如用来单独保存索引对象,可以在表空间建立后,将它的使用限额授权给该用户。

create tablespace TBS_MIKI_IND datafile '/u01/oradata/servdb/datafile/tbs_miki_ind01.dbf' size 10M;
alter user USR_MIKI QUOTA UNLIMITED ON TBS_MIKI_IND;