oracle 创建create user 及授权grant 查看登陆的用户
oracle创建用户、创建表空间、授权、建表的完整过程
oracle创建⽤户、创建表空间、授权、建表的完整过程1.⾸先以sysdba的⾝份登录oracle conn /as sysdba 查询⽤户: select username from dba_users; 查询表空间 select username, default_tablespace from dba_users where username='⽤户名‘; 查询数据⽂件 select file_name, tablespace_name from dba_data_files;2.然后就可以来创建⽤户. create user ⽤户名 identified by 密码;3.修改⽤户的密码 alter user ⽤户名 identified by 新密码;4.创建⼀个表空间 create tablespace 表空间名 datafile '空间物理存储路径(f:\ts_zzg\zzg_data.dbf后缀随意)' size ⼤⼩(200M);5.将表空间分配给⽤户 alter user ⽤户名 default tablespace 表空间名;6.为⽤户分配权限 grant create session,create table,create view,create sequence,unlimited tablespace to ⽤户名; grant all privileges to ⽤户名;(全部权限)7.查看所有⽤户所在的表空间 select username,default_tablespace from dba_users;8.查询⽤户所具有的权限 select *from session_privs;9.删除⽤户及其相关对象 drop user ⽤户名;。
Oracle查看所有用户及其权限
Oracle查看所有⽤户及其权限Oracle查看所有⽤户及其权限:Oracle数据字典视图的种类分别为:USER,ALL 和 DBA.USER_*:有关⽤户所拥有的对象信息,即⽤户⾃⼰创建的对象信息ALL_*:有关⽤户可以访问的对象的信息,即⽤户⾃⼰创建的对象的信息加上其他⽤户创建的对象但该⽤户有权访问的信息DBA_*:有关整个数据库中对象的信息(这⾥的*可以为TABLES,INDEXES,OBJECTS,USERS等。
)1、查看所有⽤户select * from dba_user;select * from all_users;select * from user_users;2、查看⽤户系统权限select * from dba_sys_privs;select * from all_sys_privs;select * from user_sys_privs;3、查看⽤户对象权限select * from dba_tab_privs;select * from all_tab_privs;select * from user_tab_privs;4、查看所有⾓⾊select * from dba_roles;5、查看⽤户所拥有的⾓⾊select * from dba_role_privs;select * from user_role_privs;6、查看当前⽤户的缺省表空间select username,default_tablespace from user_users;7、查看某个⾓⾊的具体权限如 grant connect,resource,create session,create view to TEST;8、查看RESOURCE具有那些权限SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCEoracle创建⽤户需要什么权限,Oracle 创建普通⽤户,并赋予权限采⽤sys or system / manager assysdba; 连接数据库。
oracle授权方法
--select * from dba_sys_privs where grantee='xujin' 查询一个用户拥有的系统权限
--select * from session_privs --当钱会话有效的系统权限
--角色
--create role xujin1;--建立xujin1角色
--select * from dba_role_privs where grantee='xujin' --查看用户下面有多少个角色;
--查看xujin1角色下面有什么角色权限
--select * from role_sys_privs where role='xujin2';
--select table_name,privilege from role_tab_privs where role='xujin1';
--收回权限
--revoke select on table1 from xujin1; 收回查询select表的权限;
--revoke all on table1 from xujin;
/*grant connect to xujin;
revoke connect from xujin
--grant insert on xezf.cfg_alarm to xujin1; 将插入表的信息
--revoke insert on xezf.cfg_alarm from xujin1; 收回xujin1角色的权限
--grant xujin1 to xujin ; 将角色的权限授权给xujin;
--grant update on tablet execute on procedure1 to xujin 授权存储过程
在Oracle中创建新用户,并且赋予该用户查看其他用户视图的权限
在Oracle中创建新⽤户,并且赋予该⽤户查看其他⽤户视图的权限在Oracle中创建新⽤户, 并且赋予该⽤户查看其他⽤户视图的权限1. 需求提出在HIS与第三⽅系统进⾏集成时,某第三⽅系统需要访问HIS数据库的视图⽽⾮全部的数据库表。
HIS的数据库为Oracle, 因此需要在Oracle中在原有⽤户的基础上,再增加⼀个⽤户,该⽤户仅能查看HIS中为其开放的视图。
这也是为了系统之间的安全考虑的。
2. 解决⽅案经过技术查阅,找到的解决⽅案如下:(1)以system⽤户登录oracle数据库.(2)创建⽤户并且为⽤户赋予查看视图的权限.这⾥假设要创建⼀个tester⽤户,登录密码为:“123456”.HIS需要开放的视图是在原来⽤户 outpatient下的,视图名称为:v_daily_charge.此时,应该撰写的SQL为:--01: 创建tester⽤户,并且初始密码为123456.create user tester identified by "123456";--02: 赋予该⽤户登录数据库的权限.grant create session to tester;--03: 赋予该⽤户查看outpatient下的视图v_daily_charge的权限.grant select on outpatient.v_daily_charge to tester;注意:在运⾏以上第三条SQL的时候,oracle数据库有可能会报错。
“ORA-01720: 不存在对 emergency.t_cost表的授权选项。
”经过研究,出错的原因应该是,tester⽤户要访问outpatient⽤户的视图,该视图不仅会查阅outpatient⽤户下的某些表,如t_user, t_dept表,⽽且还访问了其他⽤户的表,如emergency⽤户下的t_cost表。
为了避免以上的错误,就需要在为tester⽤户赋予查看outpatient的视图权限前,先将outpatient视图中需要访问到的emergency⽤户下的表的权限开放给outpatient⽤户。
oracle数据库用户之间授权
oracle数据库⽤户之间授权 今天遇到⼀个数据库的问题: 系统数据库⽤户下创建了⼏个视图⽤于外部系统开发报表使⽤,当外部系统提取视图数据时,需要通过⼀个只能访问需要视图权限的⽤户,于是想到给他创建⼀个新的⽤户,并给这个⽤户分配只能访问这⼏个视图的权限。
1. 使⽤ oracle sql developer 客户端登陆数据库。
2. 查看当前数据库⽤户拥有的⾓⾊: select * from USER_ROLE_PRIVS; 查看⽤户系统权限:select * from dba_sys_privs; 查看⽤户系统权限:select * from user_sys_privs; 3、因为系统数据库⽤户拥有dba权限,所以,使⽤数据库系统⽤户创建⽤户: create user BI identified by 123; 4、给BI⽤户授权连接权限: grant connect to BI; 5、给BI⽤户授权 grant RESOURCE to BI; 6、给BI⽤户授权select 某视图的权限: 7、使⽤BI⽤户连接数据库: 查询视图发现提⽰表或视图不存在:SELECT * FROM VW_MONTHLY_BUDGET_ANALYSI; 在视图前加上视图所有者⽤户名称则可以查询成功。
eg:SELECT * FROM FSSC.VW_MONTHLY_BUDGET_ANALYSI; 7、给BI⽤户授权同义词权限: 8、使⽤BI⽤户连接数据库: 此时查询发现还是不可以 9、在BI⽤户下创建同义词视图: 10、BI⽤户下直接查询视图名称则可以查询 11、但是登陆BI⽤户,则在视图列表⾥看不到任何视图,如何能够查询并且登陆⽤户也能看到该视图? 。
oracle 创建用户
Oracle 创建用户概述在Oracle数据库中,用户是用来管理和控制数据库对象访问权限的实体。
创建用户是在数据库中分配一个独立的身份,每个用户都有自己的用户名和密码,并且可以被授权执行特定的操作和访问数据库中的对象。
本文将介绍如何使用Oracle SQL语句创建用户,并且授予用户相应的权限。
步骤下面的步骤将指导您如何创建一个新的Oracle用户。
步骤一:连接到数据库首先,您需要使用合适的数据库客户端连接到Oracle数据库。
您可以使用SQL*Plus、SQL Developer或者其他支持Oracle数据库的工具。
步骤二:创建用户使用以下SQL语句创建一个新的Oracle用户:CREATE USER username IDENTIFIED BY password;在上述语句中,将username替换为您想要创建的用户名,password替换为您想要设置的密码。
例如,如果您想创建一个名为myuser的用户,密码为mypassword,则SQL语句应为:CREATE USER myuser IDENTIFIED BY mypassword;步骤三:授予权限新创建的用户默认情况下没有任何权限。
您需要手动授予用户相应的权限。
以下是常见的权限授予操作:•给予用户连接数据库的权限:GRANT CONNECT TO username;•给予用户创建表的权限:GRANT CREATE TABLE TO username;•给予用户插入、更新、删除表数据的权限:GRANT INSERT, UPDATE, DELETE ON tablename TO username;在上述语句中,username是您创建的用户的用户名,tablename是您想要授予权限的表名。
步骤四:验证用户创建使用以下SQL语句查询新创建的用户信息:SELECT*FROM all_users WHERE username ='yourusername';将yourusername替换为您创建的用户名。
oracle赋权方法
oracle赋权方法Oracle是一种关系型数据库管理系统,它提供了一种灵活且安全的赋权机制,可以控制用户对数据库对象的访问权限。
本文将介绍Oracle中常用的赋权方法。
1. 创建用户和角色:在Oracle中,可以使用CREATE USER语句创建用户,并使用CREATE ROLE语句创建角色。
用户可以拥有角色,而角色可以拥有权限。
创建用户和角色的语法如下:```CREATE USER username IDENTIFIED BY password; CREATE ROLE role;```2. 授权角色权限:可以使用GRANT语句将权限授予角色。
例如,将SELECT权限授予角色read_role:```GRANT SELECT ON table_name TO read_role;```3. 授权用户角色:可以使用GRANT语句将角色授予用户。
例如,将read_role角色授予用户username:```GRANT read_role TO username;```4. 授予用户直接权限:可以使用GRANT语句将权限直接授予用户。
例如,将SELECT权限直接授予用户username:```GRANT SELECT ON table_name TO username;```5. 撤销角色权限:可以使用REVOKE语句撤销角色的权限。
例如,撤销read_role角色的SELECT权限:```REVOKE SELECT ON table_name FROM read_role;```6. 撤销用户角色:可以使用REVOKE语句撤销用户的角色。
例如,撤销用户username的read_role角色:```REVOKE read_role FROM username;```7. 撤销用户直接权限:可以使用REVOKE语句撤销用户的直接权限。
例如,撤销用户username的SELECT权限:```REVOKE SELECT ON table_name FROM username;```8. 查看用户权限:可以使用SELECT语句查询用户拥有的权限。
oracle用户创建查询权限用户
1.创建用户create user X001 identified by 123456--(密码) -----用户名X001 密码123456default tablespace X000-----表空间名X000temporary tablespace TEMP;2.给他一些权限,包括连接权限,因为他要创建同义词,还需要给他同义词grant connect to X001 ;grant create synonym to X001 ;grant create session to X001 ;3.将用户X000的所有表的查询权限给用户X001,然后在命令窗口执行查询结果select 'grant select on X000.'||object_name||' to X001;' from dba_objects where owner like 'X000%' and object_type='TABLE';4.需要给X000用户下所有表创建同义词,但是考虑到之前已经创建过一些表的同义词,因此把所有创建同义词的语句select出来在X001用户下执行。
ELECT 'create or replace SYNONYM X001. ' || object_name|| ' FOR ' || owner || '.' || object_name|| ';'from dba_objectswhere owner in ('X000')and object_type='TABLE';5.登录system用户,找到users,找到X001右键编辑。
6.选择select any table即可。
oracle11g用户创建及赋权操作
racl e用户创建及权限设置权限:create sessioncreate tableunlimited tablespaceconnectresourcedba例:#sqlplus /nologSQL> conn / as sysdba;SQL>create user username identified by passwordSQL> grant dba to username;SQL> conn username/passwordSQL> 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;//在管理员帐户下,创建用户zhangsanalert user scott identified by tiger;//修改密码四,授予权限1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限/*管理员授权*/grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限grant unlimited session 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对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权/*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和updategrant 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的权限授予myrolegrant myrole to zhangsan;//授予zhangsan用户myrole的角色drop role myrole;删除角色/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/。
oracle如何创建用户并赋予权限
oracle如何创建⽤户并赋予权限本⽂将从⽤户创建讲起,特别讲述Oracle授予⽤户权限的⼀个实例,希望对⼤家了解Oracle授予⽤户权限有所帮助。
这两天在测数据库同步软件的时候,需要在Oracle⾥创建⼀个⽤户名和密码均为SYSDATA的⽤户,找了找资料,创建成功,现将Oracle中⽤户的创建和授予命令摘录下来:1、Linux 下Oracle的启动以Oracle⾝份登录启动lsnrctl start 登录sqplus /nolog连接数据库connect/assysdba 启动数据库startup关闭数据库shutdown immediate2、在数据中创建⽤户名启动数据库后创建⽤户名连接超级⽤户connect system/admin system 系统⽤户名字 admin 密码创建⽤户名字create user SYSDATA identified by admin ⽤户名:SYSDATA 密码:admin 可以写Default tablespace user//指定存储对象使⽤的默认空间表默认是system Temporary tablespace temp; //保存临时对象所使⽤的空间表默认是system 上⾯的俩⾏,可以写空间表为user临时为temp;不写就默认3、添加⽤户的权限Grant是Oracle授予⽤户权限的如:1.Grant create session to SYSDATA;//授予SYSDATA连接数据的权限系统权限如下:系统特权允许执⾏的操作Create session 连接数据库Create sequence 创建序列Create synonym 创建同名对象Create table 创建表Create any table 创建任何模式的表Drop table 删除表Create procedure 创建存储过程Execute any procedure 执⾏任何模式的存储过程Create user 创建⽤户Create view 创建视图Drop user 删除⽤户Drop any table 删除任何模式的表4、向⽤户授予系统特权1.Grant execute any procedure toSYSDATA with admin option此句意思为为sha⽤户创建系统特权并且可以⽤SYSDATA为别的⽤户授予权限连接SYSDATA⽤户connect SYSDATA/admin 可以创建别的⽤户5、查看⽤户权限进⼊SYSDATA⽤户connect SYSDATA/admin1.Select * from user_sys_privs;可以查看到⼀个列表,列代表⽤户名权限是否可以给别的⽤户附加权限(N、Y)⾏代表权限都有那些6、撤销⽤户授予的权限必须连接connect system/admin撤销权限revoke是系统撤销权限的关键词1.Revoke execute any procedure from SYSDATA;7、更改⽤户密码进⼊SYSDATA⽤户connect SYSDATA/admin Password输⼊旧密码输⼊新密码俩边OK 或者⽤alter user SYSDATA identified by xinmima8、删除⽤户1. Connect system/admin2.Drop user SYSDATA;9、为⽤户授予⾓⾊1. Grant dba to SYSDATA;2.Grant connect to SYSDATA;Linux下的plsql创建⽤户1. create user SYSDATA identified by admin2. Default tablespace user3. Temporary tablespace temp;4. Granr unlimited tablespace to SYSDATA;//权限5.Grant dba to SYSDATA;//⾓⾊。
oracle授权机制
oracle授权机制Oracle授权机制是指在Oracle数据库中对用户和角色进行授权和权限管理的机制。
通过授权,可以限制用户对数据库对象的访问和操作,保证数据的安全性和完整性。
在Oracle数据库中,授权是通过使用GRANT和REVOKE语句来实现的。
GRANT语句用于授权,REVOKE语句用于回收权限。
授权可以分为系统级授权和对象级授权两种。
系统级授权是指对用户和角色进行授权,控制其对整个数据库实例的访问权限。
通过GRANT语句可以授予用户和角色系统级权限,如CREATE SESSION、CONNECT、CREATE TABLESPACE等。
系统级权限授权给用户后,用户可以连接到数据库实例并执行相应的操作。
对象级授权是指对数据库对象(如表、视图、存储过程等)进行授权,控制用户对这些对象的访问和操作权限。
通过GRANT语句可以授予用户对特定对象的SELECT、INSERT、UPDATE、DELETE 等权限。
对象级授权可以细粒度地控制用户对数据库对象的操作,提高数据的安全性。
在进行授权时,可以指定授权的粒度和范围。
粒度可以是对象级、行级或列级。
对象级授权是指对整个对象进行授权,行级授权是指对对象中的某些行进行授权,列级授权是指对对象中的某些列进行授权。
范围可以是用户级、角色级或全局级。
用户级授权是指将权限授予特定用户,角色级授权是指将权限授予角色,全局级授权是指将权限授予所有用户。
除了GRANT和REVOKE语句外,Oracle还提供了其他一些相关的语句和视图来管理和查询授权信息。
例如,可以使用ALTER USER语句修改用户的权限,使用GRANT ROLE语句将角色授予用户,使用ROLE_TAB_PRIVS视图查看角色的权限等。
在实际应用中,需要根据业务需求和安全要求来设计和管理授权机制。
合理的授权设计可以保证数据库的安全性和性能。
一般来说,应该遵循以下几个原则:1.最小权限原则:即给用户和角色授予最小必需的权限,避免赋予过多的权限,降低风险。
oracle增删改表空间和用户授权及权限
oracle创建表空间、用户如果是在Windows系统下,请先点击“开始”,然后点“运行”,输入cmd并点击“确定”,打开命令行窗口如果是在Linux的图形窗口,请右键点击桌面并点击“打开终端”,然后输入su - oracl 做好上述准备工作以后,输入以下命令:sqlplus /nolog回车后,将出现提示符SQL>这时输入conn / as sysdba一般即可登录,如果失败的话,可以试一下用conn sys/sys用户的密码as sysdba来重试一下接下来,我们看看您当前的数据库文件一般都是放在哪里的:select name from v$datafile;windows下可能看到的结果如下:SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------D:\oracle\oradata\orcl\system01.dbfD:\oracle\oradata\orcl\undotbs01.dbfD:\oracle\oradata\orcl\cwmlite01.dbfD:\oracle\oradata\orcl\drsys01.dbfD:\oracle\oradata\orcl\indx01.dbfD:\oracle\oradata\orcl\tools01.dbf说明您的数据文件是放在D:\oracle\/oradata\orcl\ 这个目录下的Linux下可能看到的结果如下:SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/oracle/oradata/orcl/system01.dbf/oracle/oradata/orcl/undotbs01.dbf/oracle/oradata/orcl/cwmlite01.dbf/oracle/oradata/orcl/drsys01.dbf/oracle/oradata/orcl/indx01.dbf/oracle/oradata/orcl/tools01.dbf说明您的数据文件是放在/oracle/oradata/orcl/ 这个目录下的好,我们可以开始创建数据库表空间了,创建数据库表空间的命令格式如下:create tablespace 表空间名datafile '对应的文件名' size 大小;举例如下:对于上述的windows情况:create tablespace wbppcs datafile 'D:\oracle\oradata\orcl\wbppcs.dbf' size 3000m;3000m指的是3000MB对于上述的Linux的情况:create tablespace wbppcs datafile '/oracle/oradata/orcl/wbppcs.dbf' size 3000m;至此,所需的表空间已建立接下来我们开始创建用户,创建用户的命令格式如下:create user 用户名identified by 密码default tablespace 用户默认使用哪一个表空间;修改用户的权限:grant 角色1,角色2 to 用户名;举例如下:create user wbppcs identified by wbppcs123 default tablespace wbppcs;给用户授权:grant dba, connect to wbppcs;=============================================================================== ==============================================================oracle创建表空间和用户授权SYS用户在CMD下以DBA身份登录:在CMD中打sqlplus/nolog //匿名登录然后再conn/as sysdba //以dba身份登录//创建临时表空间create temporary tablespace bigoa_temptempfile 'E:\oracle\product\10.2.0\oradata\orcl\bigoa_temp.dbf'size 50mautoextend onnext 50m maxsize 2048mextent management local;//创建数据表空间create tablespace bigoaloggingdatafile'E:\oracle\product\10.1.0\oradata\orcl\bigoa.dbf'size 50mautoextend onnext 50m maxsize 2048mextent management local;//查看数据表空间select tablespace_name from dba_data_files;//创建用户并指定表空间create user swoa identified by oadefault tablespace bigoatemporary tablespace temp;//给用户授予权限grant connect,resource,dba,CTXAPP,create view to swoa;以后以该用户登录,创建的任何数据库对象都属于user_temp和user_data表空间,这就不用在每创建一个对象给其指定表空间了//修改用户口令alter user user_name identified by password;撤权:revoke 权限... from 用户名;删除用户命令drop user swoa cascade;//删除表空间drop tablespace bigoa_temp including contents and datafiles cascade constraints;//including contents 删除表空间的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉//cascade constraints 同时删除tablespace中表的外键参照//数据导出注:退出到cmd命令下再运行下列命令1、将数据库TEST完全导出,用户名system密码manager,导出到D:daochu.dmp中exp pobaoa/oa@orcl file=d:/zyoa0809.dmp full=y //不用加full=y,加上的意思是连同系统表一起导出exp sjsoa/oa@orcl file=d:/sjsoa1224.dmp full=y //不用加full=y,加上的意思是连同系统表一起导出2、将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)3、将数据库中的表inner_notify notify_staff_relat导出exp aichannel/aichannel@TESTDB2 file=d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)exp swoa/oa@orcl file=f:/swoa11.dmp tables=(OA_CALENDAR)exp bigoa/bigoa@orcl file=f:/bigoatemp.dmp tables=(OA_CALENDAR)4、将数据库中的表table1中的字段field1以“00”开头的数据导出exp system/manager@TEST file=d:daochu.dmp tables=(table1) query="where filed1 like '00%'"//数据导入注:退出到cmd命令下再运行下列命令1、将D:daochu.dmp中的数据导入TEST数据库中imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y有的表已经存在,所以会报错,加上ignore=y就可以了imp pobaoa/oa@orcl file=f:\zyoa0916.dmp full=y ignore=yimp sjsoa/oa@orcl file=f:/bigoatemp.dmp full=y2、将d:daochu.dmp中的表table1导入imp system/manager@TEST file=d:daochu.dmp tables=(table1)select INSTANCEID,NID,TITLE,NODENAME,ASSIGNER,NODEBEGIN,initiatorname,'办理状态'As blzt from view_wf_todo where actor='%USERID%' order by nodebegin descsqlplus / as sysdba。
oracle_创建create_user_及授权grant_查看登陆的用户及更改用户默认表空间
oracle 创建create user 及授权grant 查看登陆的用户:以下都可以:show user;select sys_context('userenv','session_user') from dual;select user from dual;查看所有登录的用户必须为DBA 用户:select username from v$session;sys、system等DBA 用户查看其他用户(test)中的对象(表):SQL> select * from test.student;创建一个普通用户都把该用户用起来的流程:1、创建用户SQL>create user test indentified by test;这样就创建了一个用户名密码都为test的用户但这个时候test还是不能登陆成功的,我们需要赋予相应的权限2、赋予create session的权限SQL>grant create session to test;这样test用户就能成功登陆进去但是此时用户还是不能创建表我们需要赋予用户创建表的权限:SQL>grant create table to test;但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。
)所以也应该赋予相应的权限SQL>grant unlimited tablespace to test;这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典)SQL>select * from user_sys_privs;这样就可以知道当前用户的权限4、撤销权限SQL> revoke create table from test;-----------------------------一些常用视图的区分dba_tables dba_all_tables user_tables user_all_tables all_tables all_all_tables当前用户所属的所有表(注意大写)SQL> select tablespace_name,table_name from user_all_tables where table_name='STUDENT'; SQL> select table_name,tablespace_name from user_tables where table_name='STUDENT'; TABLE_NAME TABLESPACE_NAME------------------------------ ------------------------------STUDENT USERSsys 要查看dba_all_tables,ALL_ALL_TABLES才能查看到test 用户的表。
oracle的schema用法
oracle的schema用法Oracle是一种流行的关系型数据库管理系统,它采用了schema 的概念来进行数据的组织和管理。
schema是一种逻辑结构,它用于将数据库中的对象(表、视图、索引等)分组并归类,这样就能方便地对它们进行管理和控制。
本文将介绍oracle的schema用法,包括它的创建、授权、查询和删除等操作。
1. 创建schema在oracle中,创建schema的方法有很多种。
其中最常见的是使用CREATE USER语句。
例如,我们可以使用以下命令创建一个名为Scott 的schema:CREATE USER Scott IDENTIFIED BY tiger;这条语句将创建一个用户Scott,并设置它的密码为tiger。
默认情况下,创建一个新的schema时,它没有权限访问任何表、视图或其他数据库对象。
这些权限需要通过授权来进行分配。
2. 授权schema在oracle中,用GRANT语句来授权给定schema的访问权限。
例如,以下命令将授予Scott用户对EMPLOYEES表的SELECT权限:GRANT SELECT ON EMPLOYEES TO Scott;如果需要授予Scott用户对EMPLOYEES表的所有操作权限,我们可以使用以下命令:GRANT ALL ON EMPLOYEES TO Scott;要注意的是,授权操作涉及到数据库中的安全性方面,因此在进行授权时需要非常小心,确保只将最小必要的权限授予给每个用户。
3. 查询schema在oracle中,可以使用SYS用户下的ALL_USERS表来查询所有可见的schema。
例如,以下命令将返回所有可见schema的列表:SELECT USERNAME FROM ALL_USERS;可以使用DESCRIBE语句来查看给定schema中的特定对象信息,例如以下命令将返回EMPLOYEES表的结构:DESCRIBE Scott.EMPLOYEES;在描述语句中,我们需要指定要查询的对象所属的schema,以及对象本身的名称。
Oracle新建用户、角色,授权,建表空间
Oracle新建用户、角色,授权,建表空间oracle数据库的权限系统分为系统权限与对象权限。
系统权限( database systemprivilege )可以让用户执行特定的命令集。
例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。
对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。
例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。
oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。
用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。
一个用户也可以直接给其他用户授权。
一、创建用户oracle内部有两个建好的用户:system和sys。
用户可直接登录到system用户以创建其他用户,因为system具有创建别的用户的权限。
在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
例如:Sql代码create user user01 identified by u01;该命令还可以用来设置其他权限,详细情况参见自学资料。
要改变一个口令,可以使用alter user命令:<span style="white-space: pre;"> alter user user01 identified by usr01;</span><span style="white-space: pre;"><span style="white-space: normal;"> </span> </span>现在user01的口令已由“u01”改为“usr01”。
oracle,创建用户,授予用户各种权限;ORA-01939错误;ORA-01950错误;。。。
oracle,创建⽤户,授予⽤户各种权限;ORA-01939错误;ORA-01950错误;。
...3个默认的⽤户:sys orcl [as sysdba]system orclscott tiger创建⽤户:create user gis /*⽤户名*/ identified by gis /*密码*/ ;PRIVILEGE:权限系统权限:grant(revoke) create session to(from) gis;grant(revoke) create table to(from) gis;grant(revoke) unlimited tablespace to(from) gis;grant create seesion to public; #将权限授予所有⽤户。
select * from user_sys_privs; 查看当前⽤户的系统权限。
对象权限:grant(revoke) select on mytable to(from) gis;grant(revoke) all on mytable to(from) gis;select * from user_tab_privs; #查看当前⽤户的表的对象权限:对象权限可以控制到列(只能插⼊和更新控制到列):select * from user_col_privs; #查看当前⽤户的列的对象权限:1) grant update(name) on mytable to sagittys; #在gis⽤户上将mytable表的name列更新权限给sagittys⽤户update gis.mytable set name='laowang' where id=1;commit;2) grant insert(id) on mytable to sagittys;insert into gis.mytable(id) values(7);GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE----- ------------------------------ ------------------------------ --GIS SAGITTYS SA SAGITTYS FLASHBACK NO NOGIS SAGITTYS SA SAGITTYS DEBUG NO NOGIS SAGITTYS SA SAGITTYS QUERY REWRITE NO NOGIS SAGITTYS SA SAGITTYS ON COMMIT REFRESH NO NOGIS SAGITTYS SA SAGITTYS REFERENCES NO NOGIS SAGITTYS SA SAGITTYS UPDATE #更新 NO NOGIS SAGITTYS SA SAGITTYS SELECT #查询 NO NOGIS SAGITTYS SA SAGITTYS INSERT #插⼊ NO NOGIS SAGITTYS SA SAGITTYS INDEX #索引 NO NOGIS SAGITTYS SA SAGITTYS DELETE #删除 NO NOGIS SAGITTYS SA SAGITTYS ALTER #修改 NO NO(在CMD中默认宽度到头了则不会规则的显⽰,此时将宽度设为400,set linesize 400,就ok了)语⾔分类:1、 DLL,数据定义语⾔CREATE,CREATE TABLE abc(a varchar(10),b char(10));ALTER,ALTER TABLE abc ADD c NUMBER; 加⼀个c的字段,数据符为NUMBER。
oracle中新建用户和赋予权限
oracle中新建⽤户和赋予权限1.新建个⽤户create user xxxxx(⽤户名) identified by "密码"alert user ⽤户名 identified by “新密码” --修改⽤户密码因为新建的⽤户和默认的⽤户是锁住的,没有权限。
所以新建⽤户后要给⽤户赋予权限grant dba to ⽤户名 --给⽤户赋予所有权限,connect是赋予连接数据库的权限,resource 是赋予⽤户只可以创建实体但是没有创建数据结构的权限。
grant create session to ⽤户名 --这个是给⽤户赋予登录的权限。
grant create table to ⽤户名 --给⽤户赋予表操作的权限grant unlimited tablespace to ⽤户名 --给⽤户赋予表空间操作的权限grant select any table to ⽤户名 --给该⽤户赋予访问任务表的权限同理可以赋予update 和delete 的grant select on srapp_hz_zhpt_yl.jggl to srapp_hz_zhpt_ylcs --这⾥是给srapp_hz_zhpt_ylcs⽤户赋予selectsrapp_hz_zhpt_yl⽤户的jggl表的查询的权限。
同理可以有alter,drop,insert等权限。
-----------------------------注意这个语句在没有访问另⼀个⽤户的权限情况下这个语句要在另⼀个⽤户登录情况下执⾏,这样才能⽣效。
-------------撤销权限基本语法同grant,关键字为revoke 如: revoke create tabel to ⽤户名就是取消这个⽤户的对表操作的权限。
-----------查看权限select * from user_sys_privs;//查看当前⽤户所有权限select * from user_tab_privs;//查看所⽤⽤户对表的权限-----------⾓⾊⾓⾊即权限的集合,可以把⼀个⾓⾊授予给⽤户,管理⾓⾊的权限⽐较简单,可以在⼀个⽤户下创建多个⾓⾊,⽤户只需要添加⾓⾊就可以管理权限了,便于⽤户管理权限。
Oracle创建用户并给用户授权查询指定表或视图的权限
Oracle创建⽤户并给⽤户授权查询指定表或视图的权限⽤DNINMSV31账户登录数据库进⾏如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUNDDEFAULT TABLESPACE "TBS_DNINMSV31"TEMPORARY TABLESPACE "TEMP2"QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "CONNECT" TO NORTHBOUND;ALTER USER NORTHBOUND DEFAULT ROLE NONE;GRANT CREATE SESSION TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;【注】:在⽤NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。
例如:select*from DNINMSV31.V_DNDEVICE; --可以正常执⾏select*from DNINMSV31.TB_DEVICE where rownum<5; --执⾏的时候会报表或视图不存在创建同义词供对⽅公司系统访问:CREATE SYNONYM V_DNDEVICE FOR DNINMSV31.V_DNDEVICE;CREATE SYNONYM V_DNSUBNE FOR DNINMSV31.V_DNSUBNE;CREATE SYNONYM V_DNPACKAGE FOR DNINMSV31.V_DNPACKAGE;CREATE SYNONYM V_DNPORT FOR DNINMSV31.V_DNPORT;第三⽅的系统直接通过这个同义词就可以访问到⽤户DNINMSV31中的视图。
oracle 19c create user 用法
oracle 19c create user 用法创建用户是Oracle数据库管理中常用的操作之一。
用户在数据库中扮演着重要的角色,用于管理数据库对象并控制数据访问权限。
本文将带领读者一步一步学习如何在Oracle 19c数据库中创建用户。
首先,让我们来了解一下Oracle 19c数据库,它是Oracle公司推出的最新版本,是2019年发布的最新版本。
它具有更高的性能、更好的可靠性和更多的功能,可以满足当今企业对数据库管理的需求。
一个用户在Oracle数据库中通常由一个用户名和密码来标识。
用户被分配给不同的角色,每个角色都有不同的权限和数据库对象的访问权限。
用户可以是数据库管理员、应用程序所有者或普通数据库用户。
让我们通过以下步骤一步一步地创建一个用户:第一步:连接到Oracle数据库。
在命令行或SQL开发工具中,使用合适的用户名和密码登录到Oracle 数据库。
例如,在SQL*Plus中,输入以下命令:sqlplus username/passworddatabase当然,你需要将“username”替换为你的用户名,“password”替换为你的密码,“database”替换为你的数据库连接串。
第二步:创建用户。
在数据库中使用CREATE USER语句创建用户。
CREATE USER语句的语法如下:CREATE USER username IDENTIFIED BY password [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [QUOTA {integer [K M] UNLIMITED} ON tablespace]...;用户名和密码是必需的参数,它们用于标识用户。
DEFAULT TABLESPACE和TEMPORARY TABLESPACE是可选参数,用于指定用户的默认表空间和临时表空间。
QUOTA参数用于指定用户在表空间中的配额。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
oracle 创建create user 及授权grant 查看登陆的用户:
以下都可以:
show user;
select sys_context('userenv','session_user') from dual;
select user from dual;
查看所有登录的用户必须为DBA 用户:
select username from v$session;
sys、system等DBA 用户查看其他用户(test)中的对象(表):
SQL> select * from test.student;
创建一个普通用户都把该用户用起来的流程:
1、创建用户
SQL>create user test indentified by test;
这样就创建了一个用户名密码都为test的用户
但这个时候test还是不能登陆成功的,我们需要赋予相应的权限
2、赋予create session的权限
SQL>grant create session to test;
这样test用户就能成功登陆进去
但是此时用户还是不能创建表我们需要赋予用户创建表的权限:
SQL>grant create table to test;
但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。
)
所以也应该赋予相应的权限
SQL>grant unlimited tablespace to test;
这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了
3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典)
SQL>select * from user_sys_privs;
这样就可以知道当前用户的权限
4、撤销权限
SQL> revoke create table from test;
-----------------------------
一些常用视图的区分
dba_tables dba_all_tables user_tables user_all_tables all_tables
all_all_tables
当前用户所属的所有表(注意大写)
SQL> select tablespace_name,table_name from user_all_tables where table_name='STUDENT';
SQL> select table_name,tablespace_name from user_tables where table_name='STUDENT'; TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
STUDENT USERS
sys 要查看dba_all_tables,ALL_ALL_TABLES才能查看到 test 用户的表。
SQL> select owner,table_name,tablespace_name from dba_all_tables where owner='TEST';
SQL> select owner,table_name,tablespace_name from all_all_tables where owner='TEST';
SQL> select owner,table_name,tablespace_name from dba_tables where owner='TEST'; SQL> select owner,table_name,tablespace_name from ALL_tables where owner='TEST'; OWNER TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
TEST STUDENT USERS
1.DBA_ALL_TABLES describes all object tables and relational tables in the database. Its columns are the same as those in ALL_ALL_TABLES.
2.ALL_ALL_TABLES describes the object tables and relational tables accessible to the current user.
ER_ALL_TABLES describes the object tables and relational tables owned by the current user. Its columns (except for OWNER) are the same as those in
ALL_ALL_TABLES.
----------------------------------------------------------------------
情景一:
用户test 用户test1
test1的用户创建了个表mytab 并且插入了一些数据
那么 test用户是否可以访问到test1的mytab怎么访问?
答:不可以,必须先授权
test1必须授权给test :grant select on mytab to test;
那么这个时候test可以通过 select * from test1.mytab;来访问mytab中的数据
如果想把某个表(对象)的所有权限都赋予给test那么可以:
grant all on mytab to test;
撤销所有权限
revoke all on mytab to test;
总结
对于系统权限由sys来做
对于对象权限由谁拥有谁授权
系统权限
grant create session to test;
grant create table to test;
grant unlimited tablespace to test;
revoke create session from test;
revoke create table from test;
revoke unlimited tablespase from test;
grant create session to public; //表示把创建表的权限赋予所有人
select * from user_sys_privs; //返回当前用户的所有系统权限
对象权限
grant select on mytab to test;
grant all on mytab to test;
revoke select on mytab from test;
revoke all on mytab from test;
select * from user_tab_privs; //返回当前用户所有的对象权限
对象权限可以控制到列
grant update(name) on mytab to test;
grant insert(id) on mytab to test;
select * from user_col_privs;
注意、:查询和删除不能控制到列
需要有commit的 insert update insert
权限的传递
系统权限的传递:
grant alter table to A with admin option;
那么A可以通过把该权限传递给B,如果想B也可以传递下去那么可以也带上with admin option
grant alter table to B;
对象权限的传递:
grant select on mytab to A with grant option;
那么A可以把在表mytab的select权限赋予给B,如果B想也能传递该select权限也可以带上with grant option
grant select on mytab to B;
登陆EM 的用户必须有一下权限
创建了一个用户testem,并有如下授权
create user testem identified by testem;
grant create session,select any dictionary to testem; // testem可以登陆EM,但是还不是em的管理员。
grant MGMT_USER to testem;
非em管理员:(在“管理”下面没有下图选项)
通过EM 登陆来增加 EM管理员:
名称:testem
电子邮件地址没有为此管理员定义电子邮件地址。
有权访问所有目标的超级管理员权限。
数据库系统权限: SELECT ANY DICTIONARY
数据库角色: MGMT_USER。