现在的位置: 首页 > 综合 > 正文

问题杂集二

2017年10月02日 ⁄ 综合 ⁄ 共 4715字 ⁄ 字号 评论关闭

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   #进入到oracle的安装目录 
dbstart           #重启服务器 
lsnrctl start     #重启监听器 
cd $ORACLE_HOME   #进入到oracle的安装目录
dbstart           #重启服务器
lsnrctl start     #重启监听器

-----------------------------------

方法2:

Sql代码

cd $ORACLE_HOME/bin   #进入到oracle的安装目录 
./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 即可

===============================================

su - oracle
lsnrctl stop
sqlplus "/as sysdba"
SQL>  shutdown immediate;
SQL>  quit
lsnrctl start
sqlplus /nolog
SQL>  connect / as sysdba
SQL>  startup;

5、SecureCRT的使用设置

ps:所谓ssh,openssh,那可是个高深的东东,没时间去仔细研究了,所以就直接用SecureCRT了,然后感觉有必要写个使用记录,就写了,哈哈,当然有空的话建议看自带的help文档会更好。

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可能是没啥效果的,你可以试试zh_CN.gb2312
,但是有时候也不一定可行。

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

 

 

抱歉!评论已关闭.