Oracle网络配置
配置Oracle服务器监听
编辑 $ORACLE_HOME/network/admin/listener.ora
监听位置
LISTENER =
(DESCRIPTION = --对应本机地址|主机名
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.170)(PORT = 1521))
)
#数据库服务
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl) --> show parameter db_unique_name
(ORACLE_HOME = /app/oracle/product/10.2.0/db_1)
(SID_NAME = orcl) --> echo $ORACLE_SID
)
)
配置客户端连接
编辑 $ORACLE_HOME/network/admin/tnsnames.ora
170 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.170)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Oracle管理工具
Oracle自带的套件里有
- pl/sql plus,基于命令行的;
- em[http://localhost:1158/em] 企业管理器,基于WEB的。
- isql*plus[http://localhost:5560/isqlplus/dba] 也是基于web的
第三方工具有
- pl/sql Developer
- Toad for oracle
- Oracle SQL Developer
Oracle用户管理
-- 1. 创建用户
create user 用户名 identified by 密码;
-- 2. 修改用户密码
alter user 用户名 identified by 新密码;
-- 3. 删除用户
drop user 用户名 [cascade]; --cascade 把该用户及表一同删除
Oracle 权限管理
-
权限分为系统权限和对象权限。
系统权限
- 用户对数据库的相关权限,connect、resource、dba等系统权限,如建库、建表、建索引、建存储过程、登陆数据库、修改密码等。
-- 显示系统权限
select * from system_privilege_map order by name;
-- 授于connect权限
grant connect to 用户名;
-- 授予resource权限
grant resource to 用户名;
-- 授予dba权限
grant dba to 用户名
-- 回收权限
revoke connect from 用户名;
-
对象权限
- 用户对其他用户的数据对象操作的权限,insert、delete、update、select、all等对象权限,数据对象有很多,比如表,索引,视图,触发器、存储过程、包等。
-- 显示所有对象权限
select distinct privilege from dba_tab_privs;
-- 授予emp表查询权限
grant select on scott.emp to 用户名;
-- 授予emp表修改权限
grant update on scott.emp to 用户名;
-- 授予emp表新增权限
grant create on scott.emp to 用户名;
-- 授予emp表删除权限
grant delete on scott.emp to 用户名;
-- 回收权限
revoke delete on scott.emp from 用户名;
查询用户权限
--查询用户系统权限
select * from user_sys_privs;
--查询用户对象权限
select * from user_tab_privs;
Oracle角色
角色就是一系列权限的集合,使用角色的主要目的就是为了简化权限的管理。
预定义角色
- connect角色
具有一般应用开发人员需要的大部分权限,建立表,视图等。 - resource角色
具有应用开发人员所需要的其它权限,比如建立存储过程,触发器等。 - dba角色
具有所有的系统权限。
--查询所有角色
select * from dba_roles;
--查询用户的角色
select * from user_roles;
--查询角色的系统权限
select * from dba_sys_privs where grantee='角色名';
--查询角色的对象权限
select * from dba_tab_privs where grantee='角色名';
数据字典
数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。
比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
用户可以用SQL语句访问数据库数据字典。
-- 查询数据字典
select * from dictionary;
Oracle中的数据字典有静态和动态之分。
- 静态数据字典–>主要是在用户访问数据字典时不会发生改变的。
例如: 某用户创建的表 - 动态数据字典–>是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。
例如: 当前连接的用户
静态数据字典中的视图分为三类
-
分别由三个前缀够成:user_、 all_、 dba_
user_*
- 该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象) all_*
- 该试图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可) dba_*
- 该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
动态数据字典
-
v$access
- 该视图显示数据库中锁定的数据库对象以及访问这些对象的会话对象(session对象)。
select * from v$access
-
v$session
- 该视图列出当前会话的详细信息。 v$active_instance
- 该视图主要描述当前数据库下的活动的实例的信息。依然可以使用select语句来观察该信息。 v$context
- 该视图列出当前会话的属性信息。比如命名空间、属性值等。