linux 下如何创建oracle 新用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 下如何创建oracle 新用户相关的知识,希望对你有一定的参考价值。

我用secureCRT进入红帽系统,系统里已经安装了ORACLE。现在我想要创建一个oracle的新用户,这个新用户有完全权限,该怎么建,注意是在字符模式下。

参考技术A 在CRT中进入oracle
--连接sqlplus
按照下面写完代码直接复制进去回车就行了
---建立用户代码为:CREATE
USER
"用户名字"
PROFILE
"DEFAULT"
IDENTIFIED
BY
"密码"
DEFAULT
TABLESPACE
"指定表空间名字"
TEMPORARY
TABLESPACE
"临时表空间"
ACCOUNT
UNLOCK;
---赋权
begin
EXECUTE
IMMEDIATE
'GRANT
SELECT
ANY
DICTIONARY
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
ALTER
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
ALTER
SYSTEM
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
ALTER
ANY
PROCEDURE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CONNECT
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
PROCEDURE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
INDEX
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
DATABASE
LINK
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
PUBLIC
DATABASE
LINK
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
VIEW
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
PUBLIC
SYNONYM
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DELETE
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
PUBLIC
DATABASE
LINK
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
ANY
TRIGGER
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
ANY
INDEX
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
ANY
PROCEDURE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
ANY
VIEW
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
PUBLIC
SYNONYM
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
PUBLIC
SYNONYM
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
SEQUENCE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
EXECUTE
ANY
PROCEDURE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
GRANT
ANY
PRIVILEGE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
GRANT
ANY
ROLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
TRIGGER
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
INSERT
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
SELECT
ANY
DICTIONARY
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
SELECT
ANY
SEQUENCE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
DROP
ANY
SEQUENCE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
SELECT
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
UNLIMITED
TABLESPACE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
UPDATE
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
COMMENT
ANY
TABLE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
ANY
TYPE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
TABLESPACE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
CREATE
USER
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
EXP_FULL_DATABASE
TO
用户名';
EXECUTE
IMMEDIATE
'GRANT
IMP_FULL_DATABASE
TO
用户名';
End;
---或者直接给DBA权限

linux系统下创建oracle表空间和用户权限查询

创建用户和表空间: 

1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)

2、以sysdba方式来打开sqlplus,命令如下: sqlplus / as sysdba

3、创建临时表空间:

--查询临时表空间文件的绝对路径。如果需要的话,可以通过查询来写定绝对路径。一般用${ORACLE_HOME}就可以了  
select name from v$tempfile;  
create temporary tablespace NOTIFYDB_TEMP tempfile ‘${ORACLE_HOME}oradataNOTIFYDB_TEMP.bdf‘ size 100m reuse autoextend on next 20m maxsize unlimited;  

4、创建表空间:

--查询用户表空间文件的绝对路径:
select name from v$datafile;
create tablespace NOTIFYDB datafile ‘${ORACLE_HOME}oradata
otifydb.dbf‘ size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

5、创建用户和密码,指定上边创建的临时表空间和表空间

create user hc_notify identified by hc_password default tablespace NOTIFYDB temporary tablespace NOTIFYDB_TEMP;

6、赋予权限

grant dba to hc_notify;
grant connect,resource to hc_notify;
grant select any table to hc_notify;
grant delete any table to hc_notify;
grant update any table to hc_notify;
grant insert any table to hc_notify;

经过以上操作,就可以使用hc_notify/hc_password登录指定的实例,创建我们自己的表了。

 

删除表空间:

1、查看用户权限

--查看用户要具备drop tablespace的权限,如果没有,先用更高级的用户(如sys)给予授权
select a2.username,a1.privilege from dba_sys_privs a1 , user_role_privs a2
where a1.privilege = ‘DROP TABLESPACE‘
and a1.grantee =a2.granted_role

2、删除临时表空间

技术分享图片
--查看临时表空间文件
select name from v$tempfile;
--查看用户和表空间的关系
select USERNAME,TEMPORARY_TABLESPACE from DBA_USERS;
--如果有用户的默认临时表空间是NOTIFYDB_TEMP的话,建议进行更改
alter user xxx temporary tablespace tempdefault;
---设置tempdefault为默认临时表空间
alter database default temporary tablespace tempdefault;
--删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace NOTIFYDB_TEMP including contents and datafiles; 
技术分享图片

3.删除用户表空间

--查看表空间文件
select name from v$datafile;
--停止表空间的在线使用
alter tablespace 表空间名称 offline;
--删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace NOTIFYDB_TEMP including contents and datafiles; 

Oracle用户权限查询相关操作:

技术分享图片
--查看所有的用户
select * from all_users;
--查看当前用户信息
select * from user_users;
--查看当前用户的角色
select * from user_role_privs;
--查看当前用户的权限
select * from user_sys_privs;
--查看当前用户的表可操作权限
select * from user_tab_privs;

--查看某一个表的约束,注意表名要 大写
select * from user_constraints where table_name=‘TBL_XXX‘;
--查看某一个表的所有索引,注意表名要 大写
select index_name,index_type,status,blevel from user_indexes where table_name = ‘TBL_XXX‘;
--查看索引的构成,注意表名要 大写
select table_name,index_name,column_name, column_position FROM user_ind_columns WHERE table_name=‘TBL_XXX‘;

--系统数据字典 DBA_TABLESPACES 中记录了关于表空间的详细信息
select * from sys.dba_tablespaces;

--查看用户序列
select * from user_sequences;
--查看数据库序列
select * from dba_sequences;
技术分享图片

转:http://kingxss.iteye.com/blog/1741076

以上是关于linux 下如何创建oracle 新用户的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 针对用户的创建及其属性的修改步骤

Linux服务器上的oracle数据导入和导出

linux oracle 怎么创建新的数据库

oracle数据库怎么创建新用户?

oracle 数据库创建新用户

怎么用 PLSQL Developer 创建新的oracle数据库