Oracle通过指令创建用户:
以下为修改和解锁用户。
sqlplus /nolog //无用户名登录,当忘记部分或者所有帐号以及密码的时候可以用此法登录。
conn / as sysdba //连接到本地数据库,并以管理员身份登录。
alter user system idtentified by manager; //修改system帐号密码为manager
alter user sys idtentified by change_on_install; //修改sys帐号密码change_on_install
alter user system account unlock; //解锁system帐号
alter user sys account unlock; //解锁sys帐号
如果不解锁用户,该用户将不能登录。
oracle默认有3个账号,scott/tiger,system/manager,sys/change_on_install。基本上每个oracle版本都有scott账户。scott曾经是oracle公司的第一位程序员。为了纪念他所以有了这个账户。
创建用户 create user test identified by test;
这样就创建了一个用户名密码都为test的用户
但这个时候test还是不能登陆成功的,我们需要赋予相应的权限
首先赋予create session的权限
grant create session to test;
这样test用户就能成功登陆进去
但是此时用户还是不能创建表 我们需要赋予用户创建表的权限:
grant create table to test;
但是用户此时还不能创建表 因为需要有使用表空间的权限(相当于 用户有了进房间的钥匙 但是没有进大门的钥匙)
所以也应该赋予相应的权限
grant unlimited tablespace to test;
这个时候用户就拥有了创建表的权限 由于表是用户test的 相应的他就拥有了对创建的表的增删查改的权限了
我们要查看用户拥有什么权限可以通过查询一个系统的视图(数字字典)
select * from user_sys_privs;
这样就可以知道当前用户的权限
撤销权限 revoke create table from test;
Alter user test password expire; //让用户test的密码失效。
Alter user test account lock; //锁定用户test。
Drop user test; //删除用户test
drop user test cascade; //删除用户以及用户名下的所有表和视图。
Nolog :log就是日志的意思,计算机术语。nolog就是无日志。
Conn:就是connection,连接的意思。
Sysdba :就是system database administrator的缩写。就是数据库管理员的意思。
Alter : 修改的意思
Idtentified :被认可
Account :账户
Lock/Unlock :锁定/解锁。
Expire:失效
Drop:抛弃
Cascade:本义是倾泻的瀑布,引申为流失的意思。
场景:
用户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;
对象权限可以控制到列 (更新和插入操作)
grant update(name) on mytab to test;
grant insert(id) on mytab to test;
select * from user_col_privs;
注意:查询和删除不能控制到列
系统权限的传递:
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;
Connected to an idle instance.
连接到空闲实例,可能是数据库监听未启动,或者数据库未启动,先启监听,再启数据库。
查看监听状态:lsnrctl status
启动监听:lsnrctl start
登陆后仍然是空闲实例,可能数据库未启动,启动数据库: startup
oinstall:Oracle 软件所有者组,拥有Oracle软件文件的所有权和访问权。
dba:Oracle 数据库管理员组,拥有对所有Oracle实例和相关文件的管理权限。
asmdba:ASM(Automatic Storage Management)管理员组,拥有对 ASM 实例和相关文件的管理权限。
backupdba:备份和恢复管理员组,拥有对Oracle数据备份和恢复操作的权限。
dgdba:Data Guard 管理员组,拥有 Data Guard 相关功能的管理权限。
kmdba:密钥管理组,拥有对 Oracle 数据库加密功能的管理权限。
racdba:Real Application Clusters (RAC) 管理员组,拥有 RAC 集群中实例和资源的管理权限。
oper:Oracle 运维用户组,拥有对 Oracle 实例进行基本配置和管理的权限,但不包括对生产数据库进行更改的权限(只读权限)
useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
useradd:创建新用户的命令。
-g oinstall:指定新用户的主组为 oinstall。oinstall 是 Oracle 软件安装期间需要创建的特定用户组,它拥有访问特定目录和文件的权限。
-G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper:指定新用户的辅助组为 dba、asmdba、backupdba、dgdba、kmdba、racdba 和 oper。这些用户组都是与 Oracle 数据库相关的组,它们授予用户在数据库中执行同样类型操作的权限。例如,dba 组提供了对所有 Oracle 数据库实例的完全管理权限。
-m:创建用户的同时创建其主目录。
oracle:新用户的用户名。