oracle 的用户管理 sqlplus的常用命令
创建用户:create user 用户名 identified by 密码;
SQL> create user scw identified by 123; 用户已创建。 SQL>
在oracle中创建用户只能由管理员或者具有管理员的权限的用户创建
修改密码:
1.修改自己的密码:
SQL> passw; 更改 SCW 的口令 旧口令: 新口令: 重新键入新口令: 口令已更改 SQL> conn scw/123; ERROR: ORA-01017: invalid username/password; logon denied 警告: 您不再连接到 ORACLE。 SQL> conn scw/234; 已连接。
2.修改其他用户密码 需要权限;
SQL> conn system/123; 已连接。 SQL> alter user scw identified by 123; 用户已更改。 SQL>
解锁用户/锁定用户:
SQL> alter user scw account unlock; 用户已更改。 SQL> conn scw/123; 已连接。 SQL> conn system/123; 已连接。 SQL> alter user scw account lock; 用户已更改。 SQL> conn scw/123; ERROR: ORA-28000: the account is locked 警告: 您不再连接到 ORACLE。
删除用户:
drop user 用户名; 如果当前用户拥有数据库表、视图、序列等等,删除用户就需要指定关键字:cascade. drop user zhangsan cascade;
授权:
新建的用户是没有任何权限的,包括连接数据库的权限。
新创建的用户是没有任何权限的,直接登录会报如下错误:
SQL> conn scw/123;
ERROR:
ORA-01045: user SCW lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
如果新建的用户想要连接数据库,就需要被赋予权限,只有管理员才能赋予新用户权限。
系统权限:create table,create session,drop user,drop table等等
角色权限:dba 管理员
connect:连接数据库
resource: 创建表的权限
赋予用户连接数据库的权限:
grant create session to zhansgan;
SQL> conn system/123;
已连接。
SQL> grant create session to scw;
授权成功。
SQL> conn scw/123;
已连接。
SQL>
system赋予用户dba的角色:
SQL> grant dba to scw;
grant dba to scw
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL>
SQL> conn system/123;
已连接。
SQL> grant dba to scw;
授权成功。
SQL>
(dba是数据库管理员
它除了重启数据库 修改字符集的权限没有外 具有其它全部权限)
DBA: 数据库管理员
用Scott给其他用户查看的权限:
SQL> conn scott/123; 已连接。 SQL> grant select on emp to scw; 授权成功。 SQL> conn scw/234; 已连接。 SQL> select * from scott.emp;
用system给其他用户查看的权限:
SQL> grant select on scott.emp to scw; grant all on scott.emp to scw; (查看所有表)
授权成功。
SQL>
给其他用户授权的能力:
with admin option: 授予系统相关的admin权限 with grant option:授予对象相关的grant 权限
注意多级权限的回收;
撤销权限:
revoke 权限 from 用户
注意:多级权限的回收:
对于对象权限,sys——>abc1——>abc3,当sys回收abc1权限的时候,abc3的权限也被回收了。
总结:对于系统权限,sys——>abc1——>abc2,然后由sys将abc1的权限回收,abc2依然可以连接数据库。
对表的操作:
查看当前用户的所有表:
SQL> conn scott/123; 已连接。 SQL> select * from user_tables;
查看当前用户所有表的表名:
SQL> select table_name from user_tables; TABLE_NAME ------------------------------------------------------------ SALGRADE BONUS EMP DEPT
查看用户:
查看所有用户(必须要有管理员权限):
Select *from all_users; 查询dba:select * from dba_users; 查询当前用户的信息:select * from user_users;
查看权限:
查询所有具有系统权限的dba:
Select *from dba_sys_privs where grantee='DBA';
查看所有角色role;
Select *from dba_roles;
profile管理用户
u 创建profile文件与指定给用户
案例1. 如果用户连续3次登陆失败,锁定用户,锁定时间2天.lock
步骤:
1.先创建一个profile文件
create profile lock_account(文件名) limit failed_login_attempts3 password_lock_time 2;
2.将profile文件指定给用户
alter user abc2 profilelock_account;
3.abc2连续三次登陆失败,账号锁定。
4. 解锁abc2用户 alter userabc2 account unlock;(管理员身份解锁)
u 解除用户的profile文件
Alter user abc2 profile default;
案例2:用户每隔10天修改密码,宽限2天。
步骤:
1.sys管理员连接数据库:conn sys/system as sysdba;
2.新建profile文件,用来限制用户十天修改密码,宽限期是2天。
create profile change_pwd limit password_life_time 10password_grace_time 2;
3.将profile配置文件指定给相应的用户
Alter user abc2profile change_pwd;
案例3:限制用户修改密码不能使用以前用过的密码
步骤:
1.sys管理员连接数据库:conn sys/system as sysdba;
2.新建profile文件,限制用户修改密码,不能使用用过的密码
Create profilepassword_history limit password_life_time 10 password_grace_time 2 passworh d_reuse_time 2;
3.abc2连接数据库,然后连续两次修改密码:
u 查询所有的profile文件
select *from dba_profiles;
u 删除profile文件
drop profileprofile文件名;
drop profilepassword_history;
如果profile文件已经指定给用户了,就需要加上cascade关键字。
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2; 配置文件已创建 SQL> alter user scw profile lock_account; 用户已更改。
SQL> drop profile lock_act; 配置文件已删除。
SQL> conn system/123; 已连接。 SQL> alter user scw account unlock; 用户已更改。
SQL> conn scw/111; ERROR: ORA-01017: invalid username/password; logon denied 警告: 您不再连接到 ORACLE。 SQL> conn scw/111; ERROR: ORA-01017: invalid username/password; logon denied SQL> conn scw/111; ERROR: ORA-01017: invalid username/password; logon denied SQL> conn scw/123; ERROR: ORA-28000: the account is locked SQL> alter userabc2 account unlock;
进入SQL Plus
要想使用sqlplus,自然得先打开sqlplus界面,打开界面有两种方式
⦁ 从开始菜单中的oracle安装目录直接打开,如下图;
选择SQL Plus快捷方式,会进入到sqlplus界面,进入之前会让你先登录,
⦁ 从cmd命令窗口进入(如何打开cmd界面不再详述,不会的,出门右转去问度娘),如下图
连接数据库
连接数据库也有两种方式
⦁ 进入sqlplus界面或者在cmd界面输入指令sqlplus,都会提示“请输入用户名”,如下图
开始菜单打开的
CMD打开的
在cmd界面把sqlplus和登录信息一起输入,直接登录到数据库,如下图;
到这里,就表示连接成功啦
用户解锁
首先必须使用system登录,因为只有数据库管理员才有修改用户状态的权限,比如我要解锁scott账户;
切记:后面的commit一定不要忘了,否则是无效滴
用户加锁
这个可能不太常用,用户解锁会用的比较多,但是还是说一下,也以scott账户举栗;
切记:和解锁时一样,后面的commit一定不要忘了,否则是无效滴
修改用户密码
这个还是很常用滴,话不多说,往下看图;
切记:还是commit别忘了,>_<;
显示和设置环境变量
Linesize:用于控制每行显示多少个字符,默认显示80个字符
Set linesize 1000;