oracle创建用户ORA-01045:user lacks CREATE SESSION privilege;
conn internal/oracle
grant user aaaa identified by aaaa;
conn aaaa/aaaa 会报错:
SQL>conn aaaa/aaaa 会报错:
ERROR:
ORA-01045: user aaaa lacks CREATE SESSION privilege; logon denied
原因:
用户至少需要会话的权利,否则连接也不成功;
用户在会话的权利上,应该有其他操作的权利;
解决方法: 1
grant connect, resource to aaaa;
2
grant create session to aaaa;
Oracle的安全
第一:用户管理*******************************************
用户至少需要会话的权利,否则连接也不成功;
用户在会话的权利上,应该有其他操作的权利;
Oracle的用户和口令不区分大小写,真是让人大跌眼镜;
Oralce中,所有用户必须明确被授权,才可以操作;
SQL Server中,创建的用户自动就拥有了一些权限;
Oracle不依赖操作系统;SQL Server依赖Windows;
MicroSoft假定大多数用户都是合法用户,采取乐观态度;
Oracle首先假定用户都是不安全的,采取悲观态度;
Oracle中的用户是互相隔离的,称为用户模式;
内置用户:
sys,网络管理员,最高权限;
当你试图输入了用户名:sys
密码:通用
之后,你发现连接不上;
而输入 用户名:system
密码:通用
或者 用户名:scott
密码:tiger
的时候都可以连接,所以你认为
sys的权限没有system高;
其实正是因为sys的权限高,所以你必须以
dba的身份来登陆:sys/通用 as sysdba
//可以使用数据字典user_users来查看当前用户管理的用户:
select * from user_users;
而dba_users可以查看dba管理的用户;
system,只管理本机上的数据库;
而all_users查看所有用户,只能由dba来查看;
******创建用户:
create user 用户名 identified by 口令 [externally]
[default tablesapce 表空间名]
[temporary tablespace 临时表空间名]
[quota 整数 K|M|unlimited on 表空间名]
//注意:创建用户必须有dba的权限;
******查询用户:
其实就是对表user_users/dba_users/all_users进行查询,
只不过这里不把他们叫表,叫数据字典;而且数据字典是系统
维护的;
*******修改用户:
alter user.....//后面和创建一样;
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。
*****限制用户
锁定: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; 当用户创建了很多表,
如果直接删除用户,它下面的表都将被删除,所以我们可以
只使得它的口令无效;
//可见,表是用户的手下,用户没了,用户创立的表,占用的空间都就没了;
//所以,一般情况下,我们不要删除用户;
****删除用户:
drop user 用户名[cascade]
//cascade是强制删除,即使有别人正在用这个用户的表;
//数据库管理语句是自动结束事务的,没有rollback的机会;
第二:权限管理***********************************************
授权:grant [系统特权名] [角色] [on 被授权操作表名] to [用户名列表]
[public][with admin option]
如果是dcl语句,就不用on 被授权操作表名
grant all on student to public:把对student的所有权限授予所有用户;
数据字典:user_sys_privs
oracle创建用户ORA-01045:user lacks CREATE SESSION privilege;的更多相关文章
- Oracle错误——user ** lacks CREATE SESSION privilege logon denied
错误 在删除一个用户TEST的情况下,再次新建用户TEST并赋予sysdba权限,使用plsqldev工具登录数据库TEST用户,报错user TEST lacks CREATE SESSION p ...
- ORA-01045: user XXZY lacks CREATE SESSION privilege; logon denied
在创建用户时,一般我们都分配connect.dba.resource 角色,但是,为什么登陆时还报错呢 原因:用户角色没有激动 解决:ALTER USER XXXX DEFAULT ROLE &quo ...
- Oracle创建用户、表(1)
Oracle创建用户.表(1) 1. 连接 C:\Users\LEI>sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on ...
- Oracle创建用户并给用户授权查询指定表或视图的权限
MSV31账户登录数据库进行如下操作: CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUND DEFAULT TABLESPACE "TBS_DN ...
- oracle创建用户、授予权限及删除用户
创建用户 oracle对表空间 USERS 无权限 alter user 用户名 quota unlimited on users; //创建临时表空间 create temporary ta ...
- oracle创建用户赋予权限
oracle用户创建及权限设置[转载] 权限: create session create table unlimited tablespace connect resource dba 例: #sq ...
- 详解Oracle创建用户权限全过程
本文将介绍的是通过创建一张表,进而实现Oracle创建用户权限的过程.以下这些代码主要也就是为实现Oracle创建用户权限而编写,希望能对大家有所帮助. 注意:每条语语分开执行,结尾必须用分号; // ...
- oracle 创建用户,授权用户,创建表,查询表
原文:oracle 创建用户,授权用户,创建表,查询表 oracle 创建用户,授权用户,创建表,查询表 假设oracle10g所有的都已经安装和配置好 第一步:win+R,进入运行,cmd; 第二步 ...
- oracle创建用户四部曲
创建用户一般分四步: 第一步:创建临时表空间 第二步:创建数据表空间 第三步:创建用户并制定表空间 第四步:给用户授予权限 创建临时表空间 create temporary tablespace ho ...
随机推荐
- Juint test Case 的2种使用方式
通常情况下,我们去测试一个类中的方法,首先是建立一个包,包中建立一个测试类,在建立测试类文件时,选择JUnit Test Case,如下: 建好之后写测试用例: 但是如果偏就想在编写方法的那个java ...
- JS在页面加载之后运行
通用的页面加载后再运行JS有两种方式:1.在DOM加载完毕后,页面全部内容(如图片等)完全加载完毕前运行JS. 2.在页面全部内容加载完成(包括引用文件,图片等)之后再加载JS 1.在DOM加载后 ...
- HihoCoder - 1664 (单调队列)
题目:https://vjudge.net/contest/319166#problem/B 题意: 一个01间隔矩阵,求一个方阵的最大边长,这个方阵的要求是里面01分隔,不能有01相邻 思路:同 ...
- HBASE(分布式海量NOSQL数据库)
HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据.分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引 1. Hb ...
- Spring CGLlB动态代理
JDK 动态代理使用起来非常简单,但是它也有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理. CGLIB(Code Generati ...
- fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
系统之家 发布时间:18-05-3117:56 很多Win7用户在复制较大的文件时,系统会弹出窗口提示“对于目标文件系统,文件XXX过大”,出现这种情况的原因是FAT32的文件系统不支持复制大于4g的 ...
- Selenium:火狐Try Xpath插件替代Firebug和Firepath
什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 工具 Xpath的练习建议大家安装火狐浏览器后,下载插件,try path. 在Selenium中 ...
- 【转】Pandas速查手册中文版
本文翻译自文章:Pandas Cheat Sheet - Python for Data Science,同时添加了部分注解. 对于数据科学家,无论是数据分析还是数据挖掘来说,Pandas是一个非常重 ...
- 十万级百万级数据量的Excel文件导入并写入数据库
一.需求分析 最近接到一个需求,导入十万级,甚至可能百万数据量的记录了车辆黑名单的Excel文件,借此机会分析下编码过程; 首先将这个需求拆解,发现有三个比较复杂的问题: 问题一:Excel文件导入后 ...
- microtime函数用法
/** * microtime函数 * 返回:如果参数为空,则返回字符串 "微妙部分(单位:秒) 秒",字符串的两部分都是以"秒"为单位返回的 * 如果参数为 ...