oracle 创建用户
2015-09-11 13:23
567 查看
oracle用户创建及权限设置
权限:create session
create table
unlimited tablespace
connect
resource
dba
例:
#sqlplus /nolog
SQL> conn / as sysdba;
SQL>create user username identified by password
SQL> grant dba to username;
SQL> conn username/password
SQL> select * from user_sys_privs;
我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle用户权限表有个深入的了解。
一、创建
sys;//系统管理员,拥有最高权限
system;//本地管理员,次高权限
scott;//普通用户,密码默认为tiger,默认未解锁
二、登陆
sqlplus / as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户scott
三、管理用户
create user zhangsan;//在管理员帐户下,创建用户zhangsan
alert user scott identified by tiger;//修改密码
四,授予权限
1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限
grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限
grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限
grant create table to zhangsan;//授予创建表的权限
grante drop table to zhangsan;//授予删除表的权限
grant insert table to zhangsan;//插入表的权限
grant update table to zhangsan;//修改表的权限
grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)
2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权
grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限
grant drop on tablename to zhangsan;//授予删除表的权限
grant insert on tablename to zhangsan;//授予插入的权限
grant update on tablename to zhangsan;//授予修改表的权限
grant insert(id) on tablename to zhangsan;
grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限
五、撤销权限
基本语法同grant,关键字为revoke
六、查看权限
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限
七、操作表的用户的表
select * from zhangsan.tablename
八、权限传递
即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:
grant alert table on tablename to zhangsan with admin option;//关键字 with admin option
grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似
九、角色
角色即权限的集合,可以把一个角色授予给用户
create role myrole;//创建角色
grant create session to myrole;//将创建session的权限授予myrole
grant myrole to zhangsan;//授予zhangsan用户myrole的角色
drop role myrole;删除角色
------------------------------------------------------
这里,我将Oracle当做一个类似于OA的管理系统来学习。
首先,安装oracle是第一步,学习状态下安装oracle的人比比皆是,事实上,能够在生产环境下安装oracle的人却凤毛麟角,有的人和oracle打一辈子交道,不一定实际的做过一次oracle数据库实施,但也从另一个角度上看出,oracle的安装实际上并不简单,能够在不同的环境下安装好oracle确实是一件非常了不起的事情。
这里,不再啰嗦安装步骤了,其他文章中会有描述的。
对于一个管理系统而言,用户名密码是第一步,例如你需要进入一个163邮箱,要不要输入用户名和密码呢?
回答是肯定的。
oracle给我们的首先是2个用户:
sys和system
这是2个默认的具有非常高的管理权限的用户,其中sys是最高管理员用户,system次之,权限不如sys大。
好了,现在了解到这里可以了,先不用再往下深究system和sys的具体细节了。
总结一下:
1 进入oracle需要输入用户名和密码
2 oracle默认有2个用户sys和system
3 sys和system都具有非常高的管理权限,但sys比system的权限大
sys用户是最高管理员用户,那我们就用这个sys用户登录oracle:
上图中,我们使用这句话登录了oracle:
Sql代码
sqlplus sys/dwh as sysdba;
sqlplus:oracle登录命令
sys/dwh:sys是用户名,dwh是密码
as sysdba:因为sys是最高管理员,所以需要加这句话。
虽然sqlplus的界面不好看,但我们使用sys用户登录到了oracle数据库。^_^
于是,我们完成了第一个知识点:登录oracle
不过,先别高兴,还没完。
生产环境下,我们不可能使用sys或system用户来操作数据库的,一个最重要的原因:
It is too dangerous!
使用sys或system可以很方便地将oracle数据库破坏掉,甚至永远不能恢复,所以一般我们不用这2个用户登录。
那么,就必须新建一个用户了。
实际需求中,我们需要创建一个用户bi,密码为bi,(哥们是搞BI的,所以这个比较熟悉)。
怎么才能创建出这个用户呢?
我们刚才使用sys用户登录了oracle,好的,不用退出,直接在sys用户的连接状态下创建bi用户。
上图中,使用这个语句创建了bi用户:
Sql代码
create user bi identified by bi;
create user:oracle创建用户关键词
bi:用户名
identified by:指定密码关键词
bi:密码
好了,bi用户我们已经创建成了,貌似我们可以使用此用户登录了。
下面使用bi用户登录试试:
很遗憾,按照上图的错误描述,我们没有成功地用bi用户登录,这是为什么呢?
错误提示很清楚,bi用户没有create session权限。
create session权限是什么?为什么要有create session权限?又是谁来给bi用户这个权限?
这些问题现在不是必须要讨论的,现在能做的,是解决这个错误,也就是给bi用户以create session权限。
再次使用sys用户登录,并赋予bi用户create session权限:
上图中,使用这个语句赋予了bi用户以create session权限,然后,就可以使用bi用户登录了。
Sql代码
grant create session to bi;
grant:赋权关键词
create session:权限-创建连接
to:与grant关键词配对
bi:用户名
bi用户有了create session权限就可以登录oracle了。
通过上面的操作我们明白了:
1 可以使用create user语句自己创建用户
2 创建完用户之后必须赋予create session权限才能登录oracle
3 在sys用户下可以给自己创建的用户(例如bi)赋权create session
本课知识点回顾:
1 进入oracle需要输入用户名和密码
2 oracle默认有2个用户sys和system
3 sys和system都具有非常高的管理权限,但sys比system的权限大
4 可以使用create user语句自己创建用户
5 创建完用户之后必须赋予create session权限才能登录oracle
6 在sys用户下可以给自己创建的用户(例如bi)赋权create session
--------------------------------------------------------------------------------
上一课讲了oracle的登录和创建一个简单的用户,那么现在就说一下如何删除用户和退出oracle。
从上图中可以看出,似乎使用了很简单的命令,就完成了用户的删除和oracle的 退出。
Sql代码
--删除用户
drop user 用户名;
--退出oracle登录
exit;
本课知识点:
1 在sys用户下删除用户
2 使用drop user关键字删除用户
3 使用exit退出oracle登录
相关文章推荐
- Oracle存储过程基本语法介绍
- oracle spool 用法小结及执行.sql文件
- PLSQL连接远程ORACLE数据库
- Oracle配置文件
- oracle还原初始化数据
- oracle11g中ASM磁盘组的mount
- oracle like 索引问题
- Oracle(十二)PL/SQL 触发器
- Oracle(十一)PL/SQL 存储函数 & 存储过程
- sql server转oracle存储过程改造中游标替代方案
- oracle的sqlldr并行导入表不要加索引
- ORACLE 在WHERE子句中引用列别名问题
- Oracle Listener 动态注册 与 静态注册
- Oracle(十)PL/SQL 异常处理详解
- oracle select into相关
- Oracle(九)PL/SQL 游标
- Linux下kill所有的Oracle远程连接
- Oracle(八)PL/SQL 流程控制(多图高清~)
- Oracle(七)--> PL/SQL 流程及要点(描述清晰 and 多图)
- oracle的 tnsnames.ora文件解析