1、oracle默认用户及密码如下
用户名 | 密码 | 以何种身份登录 | 备注 |
---|---|---|---|
sys | change_on_install | SYSDBA 或 SYSOPER | 不能以 NORMAL 登录,为默认的系统管理员身份 |
system | manager | SYSDBA 或 NORMAL | 不能以 SYSOPER 登录,可作为默认的系统管理员 |
dbsnmp | dbsnmp | SYSDBA 或 NORMAL | 复制管理员 |
scott | tiger | NORMAL | 普通用户 |
注意:
(1)直接用system登录,报错ORA-01017: invalid username/password; logon denied
解决办法:需加上登录身份。
(2)直接登录scott,会报错ORA-28000: the account is locked
解决办法:
Oracle数据库默认Scott用户是锁定的,需要登录system用户,解除scott用户锁定状态。先用系统用户sys登入后输入 alter user scott account unlock;这样就可以解除scott用户的锁定状态,重新启动sqlplus,就可以利用scott用户登入了。
2、连接用户
connect(conn) 【用户名】/【密码】
3、查看当前用户
SQL> show user;
USER 为 "SCOTT"
显示出当前的用户名
4、退出
exit
5、修改密码
修改当前登录用户的密码,直接使用
password (passw)
如果是要修改其他用户的密码,必须使用具有dba权限的账号,如system,或是具备alter user权限的账号。
alter user 【用户名】 identified by 【新密码】
6、删除用户
drop user 【用户名】 【cascade】
cascade:当用户已经建表,要删除该用户时,加上cascade,则会级联将用户及用户创建的表都删除。
7、创建用户
创建用户就用create命令即可,但是需要使用dba权限的账号或是具备create user权限的账号。
create user 【用户名】 identified by 【密码】;
7.1 用户角色
新创建的用户是没有任何操作权限的,当你登录这个新用户时,会提示以下内容
SQL> create user zsy identified by elephant;
用户已创建。
SQL> conn zsy/elephant;
ERROR:
ORA-01045: user ZSY lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
SQL> show user;
USER 为 ""
此时需要给新用户赋予权限或角色。
先说权限。Oracle有两类权限。① 系统权限:用户对数据库访问和操作的权限,如建库、建表、建索引等。② 对象权限:用户对其他用户的数据对象访问的权限,(数据对象为表、视图、过程、触发器等),例如select、insert、update、delete、all、create index权限。
使用下面的命令来给新用户赋予权限:
grant create session to [用户名];//授予用户创建session的权限,即登陆权限
grant unlimited tablespace to [用户名];//授予用户使用表空间的权限
grant create table to [用户名];//授予用户创建表的权限
grante drop table to [用户名];//授予用户删除表的权限
grant insert table to [用户名];//授予用户插入表的权限
grant update table to [用户名];//授予用户修改表的权限
grant all to public;//授予所有权限(all)给所有用户(public)
grant select on [表名] to [其他用户名];//授予用户查看指定表(其他用户的表)的权限
grant select on tablename to [用户名];//授予用户查看指定表的权限
grant drop on tablename to [用户名];//授予用户删除表的权限
grant insert on tablename to [用户名];//授予用户插入的权限
grant update on tablename to [用户名];//授予用户修改表的权限
grant insert on tablename to [用户名];//授予对指定表插入权限
grant update on tablename to [用户名];//授予对指定表修改权限
grant alert all table to [用户名];//授予用户alert所有表的权限
grant select on [表名] to [用户名] with grant option;//with grant option的意思是被赋予该权限的用户还具备了赋予其他用户该权限的权限,即权限的传递。若最初的用户被删除,则之后被赋予权限的用户将被移除该权限。
撤销权限:
revoke select on [表名] from [用户名];//select就是之前赋予用户的权限
另外,oracle也有一个角色的概念。角色是oracle事先定义的,该角色会具备一些权限,类似于将权限批量授权给了这个角色。角色分两种。① 自定义角色:用户自己定义一个角色。② 预定义角色:在安装数据库时已经存在,例如connect角色、dba角色、resource角色(可以让用户在任何表空间建表)。在创建用户的时候,可以直接让某个用户成为某个角色,从而具备这个角色具备的所有权限。
可以这样理解角色。角色就相当于人类社会的职位,比如警察、法官。这些职位是在一个小朋友出生的时候就存在的,定义好了的,比如警察的权限是强制执行、拘留违法人员等,那么当一个人被任命为警察后,他就直接具备这些权限了。类似的,当一个oracle被指定成为一个角色后,也就具备这个角色拥有的权限了。
oracle对于角色、权限的管理是oracle一个很优秀的地方。
授予用户角色:
grant connect to [用户名];//connect是oracle的角色之一
创建、删除角色:
create role [角色名];//创建角色
grant create session to [角色名];//将创建session的权限授予myrole
drop role [角色名];//删除角色
7.2 用户口令管理
分为两步:① 制定规则;② 将规则赋予给用户。
1、锁定账户
可以指定用户登录时最多可以输入密码的次数,也可以指定用户锁定的时间。需要用dba权限的账号去执行。
① 创建profile文件,即制定规则
create profile [profile名] limit failed_login_attempts [m] passwork_lock_time [n];
其中m表示锁定多少天,整数;n表示最多输入几次,整数。
② 将规则赋给某个用户
alter user [用户名] profile [profile名];
③ 给用户解锁
alter user [用户名] account unlock;
2、让用户定期来修改密码,终止口令
① 创建规则文件
create profile [profile名] limit password_life_time [m] password_grace_time [n];
m:每隔几天修改密码,整数。n:宽限期为几天,整数。
② 将规则赋给某个用户
alter user [用户名] profile [profile名];
3、口令历史管理
规定用户在修改密码的时候,不能使用以前使用过的密码。可使用口令历史,这样oracle就会把口令修改的信息存放在数据字段中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当凡发现旧密码和新密码一样时,就提示用户重新输入密码。
① 创建规则文件
create profile password_history limit password_life_time [m] password_grace_time [n] password_reuse_time [k];
password_reuse_time指定口令可重用时间,k天之后才可以重用。
② 将规则赋给某个用户
alter user [用户名] profile [profile名];
删除profile:
drop profile [profile名] 【cascade】;//删除之后被赋予规则的用户将不再具备该规则。cascade就是级联删除。