1、listener.ora与tnsnames.ora的标准配置
# listener.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
# Generated by Oracle configuration tools.
DADA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.174.244)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dada)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
2,、with admin option 和with grant option
with admin option 用于系统权限授权,with grant option 用于对象授权。
但给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create
session的权限,即直接revoke create session from B.
而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。
在赋予user 权限或者role 时,常常会用到with admin option 和with grant option,
而在使用中,可能会很容易出现混淆的情况,现把他们的相同点和不同点总结如下:
相同点:
- 两个都可以既可以赋予user 权限时使用,也可以在赋予role 时用
GRANT CREATE SESSION TO emi WITH ADMIN OPTION;
GRANT CREATE SESSION TO role WITH ADMIN OPTION;
GRANT role1 to role2 WITH ADMIN OPTION;
GRANT select ON customers1 TO bob WITH GRANT OPTION;
GRANT select ON customers1 TO hr_manager(role) WITH GRANT OPTION;
- 两个受赋予者,都可以把权限或者role 再赋予other users
- 两个option 都可以对DBA 和APP ADMIN 管理带来方便性,但同时,都带来不安全的因素
不同点:
- with admin option 只能在赋予 system privilege 的时使用
- with grant option 只能在赋予 object privilege 的时使用
- 撤消带有admin option 的system privileges 时,连带的权限将保留
例如:
1. DBA 给了CREATE TABLE 系统权限给JEFF WITH ADMIN OPTION
2. JEFF CREATES TABLE
3. JEFF grants the CREATE TABLE 系统权限给EMI
4. EMI CREATES A table
5. DBA 撤消CREATE TABLE 系统权限从JEFF
结果:
JEFF‘S TABLE 依然存在,但不能创建新的TABLE 了
EMI’S TABLE 依然存在,他还保留着CREATE TABLE 系统权限。
- 撤消带有grant option 的object privileges 时,连带的权限也将撤消
例如:
1. JEFF 给了SELECT object privileges 在EMP 上 WITH ADMIN OPTION
2. JEFF 给了SELECT 权限在EMP 上 TO EMI
3. 后来,撤消JEFF的SELECT 权限
结果:
EMI 的权限也被撤消了
3、oracle用户方面命令
默认的:最高权限用户:system 密码:manager 管理员权限用户:sys 密码:change_on_install 普通用户:scott 密码:tiger 登陆管理员或超级管理员用户可以自己建立属于自己的用户 : 命令:create user userName identified by password;创建用户名为: userName, 密码为 password
的用户分配权限:grant dba to userName; --授予DBA权限grant unlimited tablespace to userName;--授予不限制的表空间grant select any table to userName; --授予查询任何表grant select any dictionary to userName;--授予 查询 任何字典
怎么查看Oracle数据库中的所有用户名
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !
4、linux重启oracle 各种方法
在linux下重启oracle数据库及监听器:
方法1:
用root以ssh登录到linux,打开终端输入以下命令:
cd $ORACLE_HOME
dbstart
lsnrctl start
cd $ORACLE_HOME
dbstart
lsnrctl start
-----------------------------------
方法2:
Sql代码
cd $ORACLE_HOME/bin
./dbstart
./lsnrctl start
-----------------------------------
方法3:
(1) 以oracle身份登录数据库,命令:su – oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 启动数据库,命令:startup
(5) 如果是关闭数据库,命令:shutdown immediate
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl
(8) 启动监听器,命令:start
(9) 退出监听器控制台,命令:exit
(10) 重启数据库结束
-----------------------------------
方法4:(自已写脚本)
1)启动脚本(dbstart.sh)
lsnrctl start
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit
EOF
$sh dbstart.sh 即可
----------
2)关闭脚本(dbstop.sh)
lsnrctl stop
sqlplus /nolog <<EOF
connect / as sysdba
shutdown immediate;
exit
EOF
$sh dbstop.sh 即可
===============================================
$
$
$
SQL>
SQL>
$
$
SQL>
SQL>
5、SecureCRT的使用设置
SecureCRT的中文显示和中文输入
好像ssh都有这个毛病,不能中文输入和显示,但是SecureCRT不错,只要稍稍设置下中文环境就OK了。
1、依次点击:Options-->Sessions Options-->Appearance,
2、然后在右边的Normal font中选择中文字体,我选择的是"新宋体",当然字符集要选择正确(字符集是GB2312,反正我没能看到UTF-8,一般默认是西文),
3、然后就是要设置Character encoding,选择UTF-8,最后点击Ok保存即可了。
4、这一步要看你Linux语言环境而定的,如果你的语言环境是:zh_CN.UTF-8,那么你现在应该是已经可以显示和输入中文了,但是如果你的语言环境部不是zh_CN.UTF-8,那么要在每次使用SecureCRT时,输入:export LANG=zh_CN.UTF-8 ,进行手工设定。(输入:locale,即可查看自己的语言环境)
注意:如果你是使用SSH Secure Shell的,那么zh_CN.UTF-8
,但是有时候也不一定可行。 SecureCRT的高亮
显然默认的SecureCRT没有使用高亮,只要对环境选项中的相关选项设置即可。
1、依次点击:Options-->Sessions Options-->Emulation ,
2、然后再右边的Terminal选择linux,并在后面勾选上ANSI Color和Use color scheme 的2个框即可。
6、赋给用户操作视图的权力
当涉及到一些很中要的表的时候可以grant sysdba to USER;
7、快速修改ip
ifconfig eth0 192.168.174.244 netmask 255.255.255.0