问题及解决方法

问题及解决四:
如何查看windows系统下 oracle的版本

若以我的笔记本是window7系统为例,前提安装了oracle数据库,
但是由于某种原因想要知道版本号
启动 oracle服务(有可能安装完时候选择自动启动,
如果是自动启动则开机后oracle服务就是启动的,也有可能安装完不是自动那么需要手动启动服务)

在桌面上找到计算机,右键管理,点击服务和应用程序,双击服务,找到oracle的四个服务,
这里我们只需要启动两个即可
点击电脑左下角的开始--运行,输入sqlplus,回车。
出现命令窗口
用户名填写scott 回车
密码填写scott,等待几秒
以上就是成功连接上Oracle数据库
执行 select * from v$version ;
以上就是查看oracle 数据库的版本号


问题及解决五:
PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案
现象:
第一次用PLSQL Developer连接数据库,若用sys用户登录并操作则正常,若用普通用户比如haishu登录并
创建一个表则报错“动态执行表不可访问,本会话的自动统计被禁止。
在执行菜单里你可以禁止统计,或在v$session,v$sesstat和v$statname表里获得选择权限。”
原因分析:
从报错提示就可以看出,原因在于动态性能表相关的权限没有被授权给当前用户
解决方法一(推荐):
根据提示,在执行菜单里禁止统计,具体操作方法:
在顶部的菜单中选择“工具”-->“首选项”-->“选项”-->“自动统计”。
把“自动统计”前面默认的√去掉。
解决方法二:
根据提示,用sys身份给haishu用户授权
grant select on V_$session to haishu;
grant select on V_$sesstat to haishu;
grant select on V_$statname to haishu;
或给所有用户授权
grant select on V_$session to public;
grant select on V_$sesstat to public;
grant select on V_$statname to public;

问题及解决六:
oracle    使用pl/sql创建用户,删除用户

创建模式:
create user 用户名
  default tablespace 表空间名;
举例:
create user ACCOUNT
  identified by ""
  default tablespace ACCOUNTS
  temporary tablespace TEMP
  profile DEFAULT;
 
-- Grant/Revoke role privileges
grant connect to ACCOUNTS;
grant resource to ACCOUNTS
-- Grant/Revoke system privileges
grant unlimited tablespace to ACCOUNT;

删除用户:
oracle中
1 查出用户的session:
SELECT SID, SERIAL# FROM V$SESSION WHERE USERNAME='ICDPUB';
2 杀掉用户ICDPUB的session:
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
3 删掉用户ICDPUB
DROP USER ICDPUB CASCADE;
ps:如何查看当前登录数据库的用户:
SELECT * FROM V$SESSION WHERE TYPE='USER';


附:
PL/SQL 创建新用户、删除用户及用户权限的开通
PL/SQL DBA 创建用户权限
ORACLE有三大系统角色:connect,resource,dba;
创建新用户
利用PL/SQL工具创建,File--->New--->user,打开创建新用户界面,所界面上内容,
依次输入 NAME,PASSWOERD,DEFAULT TABLESPACE,TEMPORARY TABLESPACE 内容后,
下面"APPLY"按钮会显示,点击“APPLY”后,新用户就创建OK;
給用户开通权限命令:
Grant
Create session,create table,select any table,update any table,insert any
table,delete any table To user_name

Grant
Connect,create table,select any table,update any table,insert any
table,delete any table To user_name
注: 创建新用户时 create session 或connect 必须创建,否则,用户无法登陆PL/SQL;
create session与connect的区别:
create session 是权限,
connect是角色,
当查询用户权限时, 权限可以看到,而角色是看不到的!
给用户开通个别表权限
Grant select on tablename to username;
刪除y用户权限命令:
Revoke
create table,select any table,update any table,insert any table,delete
any table,sysdab
From user_name
查询用户权限:
显示已被授予的全部对象特权:Select * From sys.dba_sys_privs
显示已被授予权限的用戶特权:
Select * From sys.dba_sys_privs a Where A.grantee='username';
查询询当前运行的SQL 語句
Select a.machine, a.program, B.piece, b.sql_text
From v$session a, v$sqltext b, v$process c
Where a.paddr = c.addr
and a.sql_hash_value = b.hash_value
Order by B.piece
移除不用的用户
Drop uses username cascade;
注:此移除会移除该用户下以前所有对数据Create操作过的东西(不要轻易用此命令),移除后该用户下的东西都将会删除 !!!
创建角色
除了前面讲到的三种系统角色----connect、resource和dba,
用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。
为了创建role,用户必须具有create role系统权限。下面给出一个create role命令的实例:
create role student;
这条命令创建了一个名为student的role。
一旦创建了一个role,用户就可以给他授权。
给role授权的grant命令的语法与对对用户的语法相同。
在给role授权时,在grant命令的to子句中要使用role的名称,如下所示:
grant select on class to student;
现在,拥有student角色的所有用户都具有对class 表的select权限。
删除角色
要删除角色,可以使用drop role命令,
drop role student;
指定的role连同与之相关的权限将从数据库中全部删除。

备注:随笔中内容来源于网上资料整理,仅供参考。

原文地址:https://www.cnblogs.com/Alanf/p/7446858.html