以Oracle 11g为例。
很多时候我们经常使用第三方工具连接数据库,比如Navicat,这些工具图形化使用方便,但在数据库权限上可能带来无法预料的问题。现在遇到这样的问题:在Navicat中创建的用户SQL*PLUS中识别不到,对某表空间无权限等。这种操作在图形化工具中虽然可以勾选完成,但是权限管理大事还是用SQL语句来的更放心。
下面将从创建用户开始到创建数据库,解决一些遇到的问题,Oracle实验版本为11g。创建用户的SQL语句为
create user 用户名 identified by 密码 default tablespace 表空间名
首先我们在创建用户时不使用默认表空间,看看会有什么情况发生。
这个错误是在用户创建时留下的,如果使用图形化工具创建用户可能就会留下这种问题,在创建表的时候出现:ORA-01950:对表空间’USERS’无权限。这种问题,如果这种问题已经存在了,解决方法很简单,修改一下用户属性即可。执行下面这条语句:
alter user 用户名 quota unlimited on 表空间名
这样就可以创建表了。当然在创建用户的时候就可以避免这个问题,方法也很简单,创建完用户时: create user 用户名 identified by 密码 default tablespace 表空间名;之后再给用户授权:
grant create session, create table to 用户名
这样就可以创建表了。当然也可以如下授权:
grant connect, resource to 用户名
这种方式的授权就是create user时忘记default tablespace也可创建表。connect只有create session权限,这是连接数据库的基本权限。resource是开发者权限,至于其中包含的内容可以查询系统表中的具体内容:
select * from role_sys_privs where role=’RESOURCE’
欢迎交流,希望对大家有用。