您的位置:首页 > 数据库 > Oracle

Linux系统下连接Oracle数据库,创建新的数据库用户及分配权限

2016-12-20 09:08 561 查看
一、打开SecureCRT5.1,连接到虚拟机服务器192.168.234.181

用户名/口令 root/123456

1.从root用户切换到oracle用户

[root@oradb ~]# su - oracle


2.用sysdba用户登陆sqlplus

[oracle@oradb ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Nov 1 18:28:10 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


3.创建新的数据库用户hzpplsql口令hzpplsql

SQL> create user hzpplsql identified by hzpplsql
2  ;

User created.


4.此时尝试用刚创建的用户hzpplsql登陆:报错缺少权限。拒绝登陆。

补充:我们新建立一个用户之后,如果未进行任何权限的赋予,该用户甚至连登录的权限都没有。此时,我们需要赋予该用户create session的系统权限(或者connect角色),才能实现登录。

SQL> conn hzpplsql/hzpplsql@orcal
ERROR:
ORA-01045: user HZPPLSQL lacks CREATE SESSION privilege; logon denied


5.尝试授权,报错:没有连接。排查:查看当前用户为”空”,即需要重新登陆。

SQL> grant create session to hzpplsql;
SP2-0640: Not connected
SQL> show user;
USER is ""


6.重新连接sysdba登陆,再次授权,授权成功。

SQL> conn / as sysdba
Connected.
SQL> show user;
USER is "SYS"

SQL> grant create session to hzpplsql;
Grant succeeded.

//此时新用户hzpplsql就可以登陆了
SQL> conn hzpplsql/hzpplsql@orcal;
Connected.

//但是做任何事情的权限还是没有
SQL> create table t (id number);
create table t (id number)
*
ERROR at line 1:
ORA-01031: insufficient privileges


7.为用户hzpplsql授予DBA权限

切换到sysdba用户:

SQL> conn / as sysdba;
Connected.
SQL> grant resource,connect,dba to hzpplsql;

Grant succeeded.


补充:

对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。sysdba角色之外权限最大的角色 。

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

8.查看用户hzpplsql目前拥有的权限

切换到hzpplsql用户

SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
HZPPLSQL                       UNLIMITED TABLESPACE                     NO
HZPPLSQL                       CREATE SESSION                           NO

SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
HZPPLSQL                       CONNECT                        NO  YES NO
HZPPLSQL                       DBA                            NO  YES NO
HZPPLSQL                       RESOURCE                       NO  YES NO


补充:查看当前登陆用户的权限(系统、对象、角色)

select * from user_sys_privs;

select * from user_role_privs;

select * from user_tab_privs;

二、数据库环境已经创建好,具有DBA权限的用户hzpplsql,开始进行《Oracle PL/SQL攻略》的学习与练习

D:\myplsqltest\oracle-pl-sql-recipes-master\Oracle PL SQL Recipes\sources\hr进入目录,然后打开命令行终端CMD。执行如下命令:

1.通过SQL*PLUS连接到数据库,用刚刚新建的用户hzpplsql

sqlplus hzpplsql/hzpplsql@HZPEN181


2.执行上面目录下的sql脚本

@hr_main.sql


执行结果如下:

D:\myplsqltest\oracle-pl-sql-recipes-master\Oracle PL SQL Recipes\sources\hr>sqlplus hzpplsql/hzpplsql@HZPEN181

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 11月 28 22:43:32 2016

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> @hr_main.sql
SP2-0042: 未知命令 "em" - 其余行忽略。
******  Creating REGIONS table ....

表已创建。

索引已创建。

表已更改。

******  Creating COUNTRIES table ....

表已创建。

表已更改。

SP2-0734: 未知的命令开头 "department..." - 忽略了剩余的行。
******  Creating LOCATIONS table ....

表已创建。


。。。。。。。此处省略

成功安装所有HR相关表,到指定的用户(模式schema)中了,可以跟着书做练习了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux oracle
相关文章推荐