Oracle用户权限表管理方式,: 一、创建用户
创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元措美做网站,已为上家服务,为措美各地企业和个人服务,联系电话:18982081108
sys;//系统管理员,拥有最高权限
system;//本地管理员,次高权限
scott;//普通用户,密码默认为tiger,默认未解锁
sys;//系统管理员,拥有最高权限
system;//本地管理员,次高权限
scott;//普通用户,密码默认为tiger,默认未解锁二、 登陆用户
sqlplus / as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户scott
sqlplus / as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户
oracle中赋予用户权限的具体步骤如下:
1、首先打开电脑,点击打开电脑桌面左下角的开始图标。
2、然后在弹出来的窗口中点击搜索框,输入“cmd”,回车确定。
3、然后在弹出来的窗口中点击输入“grant unlimited tablespace to 用户名”,回车确定,获取操作表空间权限。
4、然后在弹出来的窗口中点击打开“grant create table to 用户名”回车确定,获取创建表权限。
5、然后点击输入“grante drop table to 用户名”,回车确定获取删除表权限。
6、点击输入“grant insert table to 用户名”,回车确定获取插入表权限。
7、点击输入“grant update table to 用户名”,回车确定获取更新表权限。
oracle的用户权限要是详细说,那么可能要很久,毕竟oracle的管理都是用过用户实现的。
(1)这里个人觉得最重要的是保护所在服务器的oracle用户(系统用户)的密码。并且不管是什么系统用户,就算是root,也不能随意修改才可以。毕竟本地登录的sqlplus / as sysdba就是dba权限,如果真的是这里出现问题,那么哭都来不及。
(2)dba用户有且只能有一个(用户名一定要毫不起眼,避免被猜出来,密码也要符合加密原则并且定期修改),这个用户要专人专用,绝对不能大面积给予该用户的密码,还是那句话权限太大。除了不得不利用dba身份进行的操作,其他事情一律不用这个用户,要当做这个用户不存在。
(3)其他用户权限,先说数据库的主要操作——增删改查,增是一个单独的用户,改删为一个用户或两个用户(这个权限也是严格控制的,因为一般来说),查为一个用户。感觉是不是很烦,一般也没有这么用的,不过如果真的要求严格,那么这是最好的办法。
(4)其他的就是关于表的分层管理(当然每层属于不同的用户或者每层分成几块,每块都是不同的用户),这样可以尽量避免因为权限导致的数据库问题。退一步说,就算出了问题,数据也是可以找回的。
(5)最后一个是每一个大面积分发的用户的授权都是针对表的,至于针对表空间等数据库系统层面的授权,则是由专门的用户由专门的人操作完成的。
工具/材料
CMD控制台
01
首先打开CMD命令行,输入如下的SQL语句进行oracle数据库连接,如下图所示
02
然后通过Create User命令来创建数据库用户,如下图所示,创建用户的时候可以增加临时表
03
创建好用户以后,就可以通过select命令来从dba_users表中查询创建的用户是否存在
04
接下来就需要给创建的用户进行连接授权,如下图所示,通过grant命令进行授权
05
授权成功以后,可以通过conn命令测试连接权限是否开通成功,如下图所示
06
当然还可以对用户的密码进行修改,如下图所示,通过alter命令来对用户密码进行修改
07
如果不想让一个用户进行数据库操作,你可以把这个用户锁定,如下图所示,通过alter和lock配合使用即可实现
08
最后演示一下如何删除一个用户,如下图所示,删除用户运用drop命令即可
一、权限分类:
系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。
二、系统权限管理:
1、系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
2、系统权限授权命令:
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]
授权命令:SQL grant connect, resource, dba to 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]
例:
SQL connect system/manager
SQL Create user user50 identified by user50;
SQL grant connect, resource to user50;
查询用户拥有哪里权限:
SQL select * from dba_role_privs;
SQL select * from dba_sys_privs;
SQL select * from role_sys_privs;
删除用户:SQL drop user 用户名 cascade; //加上cascade则将用户连同其创建的东西全部删除
3、系统权限传递:
增加WITH ADMIN OPTION选项,则得到的权限可以传递。
SQL grant connect, resorce to user50 with admin option; //可以传递所获权限。
4、系统权限回收:系统权限只能由DBA用户回收
命令:SQL Revoke connect, resource from user50;
系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。
三、实体权限管理
1、实体权限分类:select, update, insert, alter, index, delete, all //all包括所有权限
execute //执行存储过程权限
user01:
SQL grant select, update, insert on product to user02;
SQL grant all on product to user02;
user02:
SQL select * from user01.product;
// 此时user02查user_tables,不包括user01.product这个表,但如果查all_tables则可以查到,因为他可以访问。
3. 将表的操作权限授予全体用户:
SQL grant all on product to public; // public表示是所有的用户,这里的all权限不包括drop。
[实体权限数据字典]:
SQL select owner, table_name from all_tables; // 用户可以查询的表
SQL select table_name from user_tables; // 用户创建的表
SQL select grantor, table_schema, table_name, privilege from all_tab_privs; // 获权可以存取的表(被授权的)
SQL select grantee, owner, table_name, privilege from user_tab_privs; // 授出权限的表(授出的权限)
4. DBA用户可以操作全体用户的任意基表(无需授权,包括删除):
DBA用户:
SQL Create table stud02.product(
id number(10),
name varchar2(20));
SQL drop table stud02.emp;
SQL create table stud02.employee
as
select * from scott.emp;
5. 实体权限传递(with grant option):
user01:
SQL grant select, update on product to user02 with grant option; // user02得到权限,并可以传递。
6. 实体权限回收:
user01:
SQLRevoke select, update on product from user02; //传递的权限将全部丢失。
一、创建用户的Profile文件
SQL create profile student limit // student为资源文件名
FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数
PASSWORD_LOCK_TIME 5 //指定用户被锁定天数
PASSWORD_LIFE_TIME 30 //指定口令可用天数
二、创建用户
SQL Create User username
Identified by password
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
例:
SQL Create user acc01
identified by acc01 // 如果密码是数字,请用双引号括起来
default tablespace account
temporary tablespace temp
profile default
quota 50m on account;
SQL grant connect, resource to acc01;
[*] 查询用户缺省表空间、临时表空间
SQL select username, default_tablespace, temporary_tablespace from dba_users;
[*] 查询系统资源文件名:
SQL select * from dba_profiles;
资源文件类似表,一旦创建就会保存在数据库中。
SQL select username, profile, default_tablespace, temporary_tablespace from dba_users;
SQL create profile common limit
failed_login_attempts 5
idle_time 5;
SQL Alter user acc01 profile common;
三、修改用户:
SQL Alter User 用户名
Identified 口令
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;
1、修改口令字:
SQLAlter user acc01 identified by "12345";
2、修改用户缺省表空间:
SQL Alter user acc01 default tablespace users;
3、修改用户临时表空间
SQL Alter user acc01 temporary tablespace temp_data;
4、强制用户修改口令字:
SQL Alter user acc01 password expire;
5、将用户加锁
SQL Alter user acc01 account lock; // 加锁
SQL Alter user acc01 account unlock; // 解锁
四、删除用户
SQLdrop user 用户名; //用户没有建任何实体
SQL drop user 用户名 CASCADE; // 将用户及其所建实体全部删除
*1. 当前正连接的用户不得删除。
五、监视用户:
1、查询用户会话信息:
SQL select username, sid, serial#, machine from v$session;
2、删除用户会话信息:
SQL Alter system kill session 'sid, serial#';
3、查询用户SQL语句:
SQL select user_name, sql_text from v$open_cursor;
SQL ALTER SESSION SET
NLS_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_TERRITORY= 'CHINA'
NLS_CURRENCY= 'RMB'
NLS_ISO_CURRENCY= 'CHINA'
NLS_NUMERIC_CHARACTERS= '.,'
NLS_CALENDAR= 'GREGORIAN'
NLS_DATE_FORMAT= 'yyyy-mm-dd dy'
NLS_DATE_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_SORT= 'BINARY'
TIME_ZONE= '+08:00'
NLS_DUAL_CURRENCY = 'RMB'
NLS_TIME_FORMAT = 'HH.MI.SSXFF AM'
NLS_TIMESTAMP_FORMAT = 'DD-MON-RR HH.MI.SSXFF AM'
NLS_TIME_TZ_FORMAT = 'HH.MI.SSXFF AM TZH:TZM'
NLS_TIMESTAMP_TZ_FORMAT = 'DD-MON-RR HH.MI.SSXFF AM TZH:TZM'
一、Oracle 权限管理
SQL grant connect, resource, dba to acc01;
SQL revoke connect, resource from acc01;
二、Oracle 角色管理
SQL Create Role role_name
Identified by password/ Not Identified;
SQL Alter Role role_name ...
SQL Grant privs to role_name;
SQL Grant role_name to user_name
SQL Set Role role_name
All Except role_name2 / None