Oracle数据库添加用户

1.临时表空间和表空间的区别

表空间:此空间是用来进行数据存储的(表、function、存储过程等),所以是实际物理存储区域。

临时表空间:主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、

管理索引[如创建索 引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

因为用途不同所以才有了区分,实际上数据库都是有默认临时空间的,但实际应用中很难满足需求,所以才需要自己创建临时空间。

2. 创建临时表空间

CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE ‘D:\Oracle_Database\oradata\orcl\test_temp01.dbf‘
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;

SIZE:初始大小

AUTOEXTEND ON NEXT :自动增长,当初始大小不足时,再分配多少空间。

MAXSIZE:最大空间,空间大小上限。

3.创建表空间

CREATE TABLESPACE test_data
LOGGING
DATAFILE ‘D:\Oracle_Database\oradata\orcl\TEST_DATA01.DBF‘
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;

SIZE:初始大小

AUTOEXTEND ON NEXT :自动增长,当初始大小不足时,再分配多少空间。

MAXSIZE:最大空间,空间大小上限。

4.创建用户并分配表空间

CREATE USER username IDENTIFIED BY password
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;

另注:为已建好的用户更改表空间

ALTER USER USERNAME DEFAULT TABLESPACE TABLESPACENAME;

5.给用户授予权限

在Oracle数据库中,权限分为两类:系统权限、实体权限(对象权限)。

系统权限:系统规定用户使用数据库的权限(系统权限是对用户而言)。

实体权限:某种权限用户对其它用户的表或视图的存取权限(是针对表或视图而言的)。

通产情况下,我们创建好了一个用户后,直接赋予系统权限,在普通用户常见完成后,一般使用下面语句进行权限的赋予

便可满足要求:

GRANT CONNECT,RESOURCE TO USER;

常用的系统管理权限:

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有RESOURCE权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有CONNECT权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

对于普通用户:授予CONNECT, RESOURCE权限。
对于DBA管理用户:授予CONNECT,RESOURCE, DBA权限。

系统权限授权命令:
系统权限只能由DBA用户授出:SYS, SYSTEM(最开始只能是这两个用户)
授权命令:grant connect, resource, dba to 用户名1 [,用户名2]...;

GrANT CONNECT,RESOURCE,DBA TO 用户名1 [用户名2]...;

注:普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。 

相关权限查询语句:

查询用户拥有那些权限:

SELECT * FROM DBA_ROLE_PRIVS;
SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM DBA_SYS_PRIVS;

查自己拥有哪些系统权限

SELECT * FROM SESSION_PRIVS;

常用的实体权限:

  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)

oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权:

  grant select on tablename to zhangsan;//授予zhangsan查看指定表的权限

  grant drop on tablename to zhangsan;//授予zhangsan删除指定表表的权限

  grant insert on tablename to zhangsan;//授予zhangsan插入指定表的权限

  grant update on tablename to zhangsan;//授予修改表的权限

  grant insert(id) on tablename to zhangsan;

  grant update(id) on tablename to zhangsan;//授予zhangsan对指定表特定字段的插入和修改权限,注意,只能是insert和update

  grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限

一般情况下,使用下面一句便可满足:

GRANT CONNECT,RESOURCE TO USER;

6.撤销权限

基本语法同grant,关键字为revoke

参考:

Oracle 用户、对象权限、系统权限

Oracle权限管理详解(原创)

ORACLE临时表空间总结

Oracle创建表空间、创建用户以及授权、查看权限

oracle用户创建及权限设置

时间: 2024-08-28 17:33:17

Oracle数据库添加用户的相关文章

Oracle数据库任何用户密码都能以sysdba角色登入

* 本文相关环境:Windows 10,64位操作系统:Oracle 11gR2:toad for Oracle12.1 最近在学习Oracle数据库,使用Toad for Oracle来查看数据库的信息,发现在以sysdba角色登录数据库时,无论输入什么密码,均可以连接到数据库,以为是数据库又出故障了,带着疑问,查找资料.发现里面有很多的学问,下面简单记述一下. Oracle认证用户有两种方式:操作系统认证与口令认证.操作系统认证也叫本地认证. 操作系统认证:Oracle认为操作系统用户是可靠

<转>为Oracle数据库创建用户

Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库. 创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户,并且为该用户指定表空间. 下面是创建数据库用户的具体过程: 1.假如现在已经建好名为'news'的数据库,此时在F:/oracle/product/10.1.0/oradata/目录下已经存 在news目录(

关于Oracle数据库sys用户登入的解惑

一直有个问题困扰,在window系统安装Oracle后,打开sqlplus,可以直接用conn / as sysdba登入,无需用户名和密码,如图: 然而,我们还可以这样,con sys/sadfa as sysdba,密码随便输入,还是可以登入. 然而,我们还可以这样,用户名和密码随便输入,还是可以登入. 到这里,不了解同学,是不是觉得,orale疯了,这么弱的安全机制.还可以这样玩.其实,这里的原因是这样的. 验证登入数据库有2种机制,1:用户名和密码验证(输入正确的用户名和密码),2:是主

ORACLE数据库找回用户密码

安装完oracle数据库后,登录时sys,system,scott这几个用户密码输入后都不对,查阅资料后解决 1,cmd下输入sqlplus,之后让你输入用户名,输入这个 "/as sysdba" ,之后输入"alter user (用户名) identified by (密码);" 因为我要用scott这个用户,但是使用刚才sql语句修改scott这个用户时,怎么改都不生效,很奇怪,遂用这个sql语句修改 sys这个用户,修改成功. 2,打开https://loc

oracle数据库添加新用户

/*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace kmyf_temp tempfile 'E:\app\pangxy\product\11.2.0\dbhome_1\kmyf_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间 */ create tablespace kmyf_data loggi

忘记初始安装的oracle数据库的用户密码怎么解决

安装了数据库很久了,却在本地没有使用,这是经常发生的事,现在如何来解决这件事呢. 首先进入plus cmd-sqlplus  命令 然后在链接数据库会无奈的发现你所输入的用户名知道怎么写了 可以查询下一般oracle下默认的用户名先: 用户名 / 密码                      登录身份                              说明 sys/change_on_install       SYSDBA 或 SYSOPER        不能以 NORMAL 登录

Oracle数据库创建用户并授权

首先在命令行界面下用sys或system用户登录数据库,具体方法是: 1)运行:cmd 2)sqlplus → 回车 3)sys/ as sysdba → 回车 → 回车 执行创建用户的sql语句: create user username identified by password; 执行授权的sql语句: grant connect,resource,dba,exp_full_database,imp_full_database to username; Oracle拥有多个角色,不同的角

在Oracle中添加用户登录名称

第一步,打开Oracle客户端单击 “帮助”-->"支持信息"-->”TNS名“,加入红色部分.页面如下: 第二步,再次打开Oracle客户端时,就会显示数据库了,只需选择要登录的数据库,输入密码就可以了. 总结:这是一个很小的问题,是我第一次用Oracle时的问题,现在想起来了,就随手记一下.

用cmd命令创建oracle 数据库、用户和表空间

Win+R调查运行窗口,输入cmd回车 连接到本地oracle库 创建名为"SXSJ"的表空间,其初始大小为512M,支持自动扩展,每次增量为32M: create tablespace  SXSJ datafile 'D:\app\LZB\oradata\SXSJ' size 512M autoextend on next 32M; 创建名为"SXSJ"的用户 CREATE USER SXSJ  IDENTIFIED BY SXSJ DEFAULT TABLESP