3. sql*plus 常用命令
-
conn[ect] (可用于切换用户使用)
**用法:**conn 用户名/密码@网络服务名[as sysdba/sysoper]
当用特权用户身份连接时,必须带上 as sysdba 或 as sysoper -
dlsc[onnect]
**说明:**该命令用来断开与当前数据库的连接,但不退出sqlplus窗口 -
passw[ord]
**说明:**该命令用于修改用户的密码,如果要想修改其它用户的密码,需要sys/system
特别说明: 如果给自己改密码则可以不用带用户名。如果给别人修改密码需要带用户名。
(必须时system或者sys用户才可以修改) -
show user
**说明:**显示当前用户名。 -
** exit**
**说明:**该命令会断开与数据库的连接,同时会退出sql*plus
4. 创建用户
在Oracle中要创建一个新的用户使用 ** create user ** 语句,一般是具有dba(数据库管理员)的权限才能使用。
1)创建用户
命令:create user 用户名 Identifled by 密码;
2)给用户修改密码
如果给别人修改密码则需要具有dba的权限,或是拥有alter user 的系统权限
命令:alter user 用户名 Identifled by 新密码;
3)修改自己的密码
如果给自己修改密码可以直接使用
命令:password 新密码;
问题:创建好的用户无法正常登录?
Oracle 中用户建立之后是无法正常登录的,只有在数据库管理员(DBA)对用户分配相应的权限后,用户才可以登录。
Oracle用户分配权限和角色
概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。
给一个用户赋权限使用命令 grant,回收权限使用命令 revoke
赋权限基本语法: grant 权限/角色 to 用户名;
回收权限基本语法: revoke 权限/角色 from 用户名;
5.1 分配权限
语法: grant create 权限 to 用户名;
例如:给张三赋予会话权限
sql>grant create session to zhangsan;
5.2 分配角色
也可以按角色对用户分配权限
语法: grant 角色名 to 用户名;
例如:授予张三 resource to 角色
sql>grant resource to zhangsan
5.3 Oracle中权限的概念
** 权限分为系统权限与对象权限。**
** 系统权限:** 是数据库管理相关的权限:create session(登录权限)、create table(创建表权限)、create index(创建索引权限)、create view(创建视图权限)、create sequence(创建序列权限)、create trriger(创建触发器权限)。
** 对象权限:** 是用户操作数据对象相关的权限。比如对表的增删改查(insert 增、delete 删、update 改、select 查);
5.4 角色
在Oracle中角色分为:预定义角色和自定义角色:
** 预定义角色: ** 把常用的权限集中起来,形成角色。常见的角色有:dba、connect、resource等。
** connect角色:** 是授予用户的最基本的权利,能够连接到Oracle数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERT等操作。Create session – 建立会话;Alter session – 修改会话;Create view – 建立视图;Create sequence – 建立序列等权限。
** resource 角色:** 具有创建表、序列、视图等权限。Create table – 建表;Create trigger – 建立触发器;Create procedure – 建立过程;Create sequence – 建立序列;Create type – 建立类型等权限。
** dba 角色:** 是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。
** 自定义角色:** 按需定制一定权限形成角色,可以作为预定义角色的补充,来满足用户的需求。
6. 删除用户
** 概述:** 一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user 的权限。
** 命令:** drop user 用户名 [cascade]; 可选参数 cascade
在删除用户时,**注意:**如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数 cascade;Cascade有级联的作用。