首页 > 代码库 > oracle创建用户ORA-01045:user lacks CREATE SESSION privilege 及一些简单操作(one lesson)

oracle创建用户ORA-01045:user lacks CREATE SESSION privilege 及一些简单操作(one lesson)

scott用户成功连接数据库的具体方法:
1.grant connect, resource to scott;
2.grant create session to scott;
3.cmd
4.sqlplus scott/tiger

 

 

Oracle的安全
 
1.用户管理
用户至少需要会话的权利,否则连接也不成功;
用户在会话的权利上,应该有其他操作的权利;
Oracle的用户和口令不区分大小写,真是让人大跌眼镜;
Oralce中,所有用户必须明确被授权,才可以操作;
 
SQL Server中,创建的用户自动就拥有了一些权限;
Oracle不依赖操作系统;SQL Server依赖Windows;
MicroSoft假定大多数用户都是合法用户,采取乐观态度;
Oracle首先假定用户都是不安全的,采取悲观态度;
Oracle中的用户是互相隔离的,称为用户模式;
 
 
2.创建用户: (注意:创建用户必须有dba的权限)
 create user 用户名 identified by 口令 [externally]
 [default tablesapce 表空间名]
 [temporary tablespace 临时表空间名]
 [quota 整数 K|M|unlimited on 表空间名]

 
3.查询用户:
 其实就是对表user_users/dba_users/all_users进行查询, 只不过这里不把他们叫表,叫数据字典;而且数据字典是系统维护的;
 
 
4.修改用户:
 alter user user_name identified by user_key;
Oracle中一个实例就是一个数据库,这个数据库相当与SQL Server的全部数据库;
Oracle的一个数据库被分为很多个表空间,每个表空间相当于SQL Server中的一个数据库;
   
实例演示:
create user student_user identified by student
default tablespace users
temporary tablespace temp
quota 5m on users
quota 3m on temp
 
/其中,users,temp都是内置的表空间,student_user在users里有5m空间,在temp里有3m;
新创建的用户是没有权利的:
SQL> conn student_user/student;
ERROR:
ORA-01045: user STUDENT_USER lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
 
5.限制用户
 锁定:alter user 用户名 account lock;
  效果:
  SQL> alter user student_user account lock;
  用户已更改。
  SQL> conn student_user/student;
  ERROR:
  ORA-28000: the account is locked
  警告: 您不再连接到 ORACLE。
 
 解锁:alter user 用户名 account unlock;
 
 口令无效:alter 用户名 password expire;
 
当用户创建了很多表,如果直接删除用户,它下面的表都将被删除,所以我们可以只使得它的口令无效;
可见,表是用户的手下,用户没了,用户创立的表,占用的空间都就没了;所以,一般情况下,我们不要删除用户;
6.删除用户  
 drop user 用户名[cascade]
 
 cascade是强制删除,即使有别人正在用这个用户的表;数据库管理语句是自动结束事务的,没有rollback的机会;
 
7.权限管理
授权:grant [系统特权名] [角色] [on 被授权操作表名] to [用户名列表] [public][with admin option]
 
如果是dcl语句,就不用on 被授权操作表名
 grant all on student to public:把对student的所有权限授予所有用户;
 
8.数据字典:user_sys_privs
 select * from user_sys_privs
 
9.权限收回
 revoke 权限列表 on 表 from 用户;
 SQL> revoke create table from iam;
 撤销成功。
 
撤消只是撤消本次授权的权限,所以如果某个用户原来就有某个权利,而你又给它授了同样的一个权利,然后你收回这个权限的时候,它原来就具有的这个权利还是有的;
 
10.角色管理
因为一个用户可能需要某些权限的集合,当我们得到一新的用户的时候,我们需要给一个
用户依次授权每个它需要的权限;角色正是一个权限的集合,用户可以直接被授予这个
角色,用户自然就拥有了它的角色所拥有的权利;
 
11.创建角色:
 create role 角色名 [no identified|identified by 口令|externally]
 
 not identified:指出授予该角色的用户在使用时不需要检验; identified by:指出授予该角色的用户在使用set role命令时需要检验
 
12.收回权限:
revoke 权限 from 角色名;
 
角色就是权限的集合;
实例:
create role role_name;
 
grant create table,create session,create view to role_name;
 
grant role_name to scott;
 
revoke create view from role_name;
 
角色的某个权限被收回的时候,被授予该角色的用户的该权限也相应被收回
 
13.锁定表的方法

select * from scott.emp for update;

 

14.更改日期格式

alter session set nls_data_format=‘yyyy--mm--dd hh24:mi:ss‘;

15.增加工资

sal=500;
select ename,sal,sal(1+0.2)/sal+100 新工资 from scott.emp;

16.alter的作用

alter  主要在增加列
 
17.实例的启动

sqlplus /nolog
conn / as sysdba
startup nomount


18.清屏
clear screen/scr

 


F:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN

F:\app\Administrator\oradata\orcl\users01.dbf