Oracle创建表用户

Oracle创建表用户

一、创建用户
oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。
语法[创建用户]: create user 用户名 identified by 口令[即密码];
例子: create user test identified by test;
二、角色介绍
oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.

  1. connect role(连接角色)
    –临时用户,特指不需要建表的用户,通常只赋予他们connect role.
    –connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
    –拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)
  2. resource role(资源角色)
    –更可靠和正式的数据库用户可以授予resource role。
    –resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
  3. dba role(数据库管理员角色)
    –dba role拥有所有的系统权限
    –包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
    三、具体操作如下
    1.Windows用户打开cmd到sqlplus.exe所在目录下,然后执行sqlplus /nolog,linux用户在终端中输入su - oracle,然后输入密码,再执行sqlplus /nolog。
    1.用具有DBA权限的用户登录数据库(可用sys或system用户创建),
    conn /as sysdba
    2.创建用户名是user1,密码是password1的用户
    create user user1 identified by password1
    3.赋予连接、资源的权限
    grant connect to user1
    4.如果是授予该用户拥有查看几张表的权限,首先要先了解这几张表分别属于那个用户,属于那个表空间。
    查看oracle下面所有的表空间,使用命令select * from Dba_Tablespaces。
    查询某个表属于哪个用户
    select owner from dba_tables where table_name=upper(‘表名’);
    4.赋予表空间为A的TABLE1和TABLE2两张表的查询权限给user1
    grant select on A.TAB LE1 to user1
    grant select on A.TABLE2 to user1
    5.测试用user1用户登录后,其他表没有查询权限,并且TABLE1和TABLE2只能查询,不具有其他权限。
    四、扩展
    1.授予用户创建同义词权限grant create synonym to user1;(建议可以设置)
    引入同义词的原因在一些商业数据库中,有时信息系统的设计或开发者为了增加易读性,故意定义一些很长的表名(也可能是其它的对象)。这样虽然增加了易读性,但在引用这些表或对象时就不那么方便,也容易产生输入错误。另外在实际的商业公司里,一些用户觉得某一个对象名有意义也很好记,但另一些用户可能觉得另一个名字更有意义。oracle系统提供的同义词(synonym)就是用来解决那个以上的难题的。设想一下在您的日常工作中您每天都要使用supplier表许多次,在这种情况下,您就可以借助于同义词(synonym)来帮助您提高生产力。
    怎样创建同义词(synonym):create synonym 同义词 from 表名
    例:create synonym s from supplier;
    2.将其他表用户创建的所有表授予user1用户查询的权限,并将结果查询出来展示。
    grant select on ‘||owner||’.’||object_name||’ to user1;
    select ‘grant select on ‘||owner||’.’||object_name||’ to user1;’ from dba_objects where owner in (‘SYS’) and object_type=‘TABLE’;
    两句授权语句区别:
    grant select on ‘||owner||’.’||object_name||’ to user1;授予user1所有用户现在所有表的查看权限。
    grant select any table to use1;授予所有表的查看权限给user1。
    两句授权语句的区别在于权限的控制,第一句授权语句好控制权限,第二条语句不好控制权限,原因是,第一句授权语句只是授权所有用户现在所有表的查看权限,也就是说如果在授权完成后,其他用户在授权之后再创建表,user1是没有查看新建表的权限的,第二条语句是将所有表的产看权限都授予user1,权限较大,不管是其他用户再次新建表,依然还是会被user1看到,不建议使用第二句授权语句进行授权,不好控制权限。
    3.select ‘create or replace synonym reader.’||object_name||’ for ‘||owner||’.’||object_name||’;’ from dba_objects where owner in (‘SYS’) and object_type=‘TABLE’;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值