Oracle 用户管理

创建用户:

create user  nokey identified by zero;

预定义账户(predefined user accounts):

管理员账户有:sys system sysman dbsnmp. DBSNMP 用来监控数据库。

样例用户:HR SH OE

内部账户 如WKSYS.这些被用来一些新特性或者一些组件。

SYS的默认密码是CHANGE_ON_INSTALL 

SYSTEM 的默认密码MANAGER

'

ALTER USER NOKEY ACCOUNT LOCK(或者UNLOCK) 锁定用户

select * from dab_users; 查看所有的用户信息

select * from dba_ts_quotas; 查看用户的表空间限额

select SID,SERIAL#,USERNAME FROM V$session 找出和用户相关的会话

select owner,object_name from dba_objects where owner like ' nokey'//查看nokey 用户用户的模式对象

drop user nokey ;删除用户

drop user nokey CASCADE;如果用户模式下存在对象,则用这句话删除用户。

select username from v$session where type = 'user';查看当前登录数据库的用户

 ==============================

限制用户对资源的消耗----概要文件(user profiles)

数据库的资源包括:CPU时间、会话的空闲时间、会话的连接时间、逻辑读(logical reads)、每个用户的并发会话数(concurrent sessions for each user)、

         私有SGA区及用户私有SQL区(private SQL Areas)

select username, profile from dba_users;


USERNAME PROFILE
------------------------------ -------------------
MGMT_VIEW DEFAULT
SYS DEFAULT
SYSTEM DEFAULT
DBSNMP DEFAULT
SYSMAN DEFAULT
OUTLN DEFAULT
FLOWS_FILES DEFAULT
MDSYS DEFAULT
ORDDATA DEFAULT
ORDSYS DEFAULT
ANONYMOUS DEFAULT
EXFSYS DEFAULT
WMSYS DEFAULT
XDB DEFAULT
APPQOSSYS DEFAULT
ORDPLUGINS DEFAULT
APEX_030200 DEFAULT
SI_INFORMTN_SCHEMA DEFAULT
DIP DEFAULT
APEX_PUBLIC_USER DEFAULT
ORACLE_OCM DEFAULT
XS$NULL DEFAULT

已选择22行。

==========================================

管理员的验证之--使用口令文件验证

cmd>orapwd FILE=E:appdingqiproduct11.2.0dbhome_1databasePWDdabook.ora ENTRIES=5 FORCE=Y


SQL> create pfile = 'E:appdingqiproduct11.2.0dbhome_1databaseinitdabook.ora'
2 from spfile = 'E:appdingqiproduct11.2.0dbhome_1databaseSPFILEDABOOK.ORA'
3 /

文件已创建。

已用时间: 00: 00: 00.17
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> CREATE SPFILE = 'E:appdingqiproduct11.2.0dbhome_1databaseSPFILEDABOOK.ORA'
2 FROM PFILE = 'E:appdingqiproduct11.2.0dbhome_1databaseinitdabook.ora'
3 /

文件已创建。

已用时间: 00: 00: 00.38
SQL> STARTUP
ORACLE 例程已经启动。

Total System Global Area 711430144 bytes
Fixed Size 1376968 bytes
Variable Size 293604664 bytes
Database Buffers 411041792 bytes
Redo Buffers 5406720 bytes
数据库装载完毕。
数据库已经打开。
SQL> CREATE USER newsuper IDENTIFIED BY zero;

用户已创建。

已用时间: 00: 00: 00.34
SQL> grant sysdba to newsuper;

授权成功。

已用时间: 00: 00: 00.20
SQL> connect newsuper as sysdba
输入口令:
已连接。
SQL> SET PAGESIZE 25
SQL> SET TIMING ON
SQL> SET FEEDBACK ON
SQL> select * from v$PWFILE_USERS;

USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
NEWSUPER TRUE FALSE FALSE

已选择2行。

这里 newsuper用户是超级用户了密码是 zero
如果想撤销授权;使用下面的命令即可:

revoke sysdba from newsuper;

 ==============================================

角色和权限

一个角色是一组相关权限的集合,角色其实也是权限,它其实是结合了多个权限。

角色方便了权限的管理,如果要给某一类用户授予多个权限,我们可以创建一个角色,当给用户授权时,只需把角色授予用户即可,而不需要对该用户多次授权。

SQL> show user
USER 为 "SYS"
SQL> create role role1
2 /

角色已创建。

已用时间: 00: 00: 00.09
SQL> create role role2 identif

角色已创建。

已用时间: 00: 00: 00.01
SQL> grant create view to role

授权成功。

已用时间: 00: 00: 00.00
SQL> grant insert on manager t
grant insert on manager to rol
*
第 1 行出现错误:
ORA-00942: 表或视图不存在


已用时间: 00: 00: 00.10
SQL> grant insert on tvb to ro
grant insert on tvb to role1
*
第 1 行出现错误:
ORA-00942: 表或视图不存在


已用时间: 00: 00: 00.01

SQL> create user rawman identified by zero;

用户已创建。

已用时间: 00: 00: 00.01
SQL> conn rawman
输入口令:
ERROR:
ORA-01045: user RAWMAN lacks C


警告: 您不再连接到 ORACLE。
SQL> show user
USER 为 ""
SQL> conn sys as sysdba
输入口令:
已连接。
SQL> SET PAGESIZE 25
SQL> SET TIMING ON
SQL> SET FEEDBACK ON
SQL>
SQL> grant create session to rawman;

授权成功。

已用时间: 00: 00: 00.01


SQL> grant select on system.manager to rawman;

授权成功。

已用时间: 00: 00: 00.14
SQL> grant create table to rawman;

授权成功。

已用时间: 00: 00: 00.00
SQL>
SQL> grant create any index to rawman ;

授权成功。

已用时间: 00: 00: 00.00
SQL> grant role1 to rawman;

授权成功。

SQL> SELECT * from DBA_SYS_PRIVS WHERE grantee = 'RAWMAN';

GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RAWMAN CREATE TABLE NO
RAWMAN CREATE ANY INDEX YES
RAWMAN CREATE SESSION NO

已选择3行。

已用时间: 00: 00: 00.07
SQL> select * from dba_tab_privs where grantee ='RAWMAN';

GRANTEE OWNER
------------------------------ ------------------------------
TABLE_NAME GRANTOR
------------------------------ ------------------------------
PRIVILEGE GRA HIE
---------------------------------------- --- ---
RAWMAN SYSTEM
MANAGER SYSTEM
SELECT NO NO


已选择 1 行。
查看rawman 被授予了哪些角色:
SQL> select granted_role from dba_role_privs where grantee = 'RAWMAN';

GRANTED_ROLE
------------------------------
ROLE1
===========================================================
同时,使用rawman 连接到数据库时可以进行已经被sys授权的一些权限的操作:
rawman 可以连接到数据库,可以查看system用户的表 manager(之前创建的table),可以创建自己的表rawman_tb1,
等等,同时rawman还继承了role1的一些权限。(grant role1 to rawman;)
SQL> conn rawman
输入口令:
已连接。
SQL> SET PAGESIZE 25
SQL> SET TIMING ON
SQL> SET FEEDBACK ON
SQL> select * from system.manager;

MGRNO MNAME JOB
---------- ------------------------------ ------------------------------
REMARK
--------------------------------------------------------------------------------
12 Smith manager
3600

13 Paul coder
3000


已选择2行。

已用时间: 00: 00: 00.14
SQL> create table rawman_tb1 (id number, name varchar(20));

表已创建。

已用时间: 00: 00: 00.24
SQL> select * from rawman_tb1
2 /

未选定行

已用时间: 00: 00: 00.00
SQL> desc rawman_tb1
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(20)

SQL> grant create any index to item;

授权成功。

原文地址:https://www.cnblogs.com/happinessqi/p/3313732.html