下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

linux下如何在ORACLE数据库中创建新用户?

作者:课课家教育     来源: http://www.kokojia.com点击数:2825发布时间: 2016-02-19 11:48:03

标签: oracleLinuxLinux系统

  一,在已有数据库实例中创建新用户

  操作步骤如下:

  1、登录Linux,以Oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户)

  2、以sysdba方式来打开sqlplus,命令如下:SQL>sqlplus /nolog SQL>conn /as sysdba SQL>startup 或者 sqlplus "/as sysdba"

  注创建临时表空间的操作可以自行选择 --//创建临时表空间

  create temporary tablespace test_temp tempfile '/data/oracle/oradata/test/sysdate_temp01.dbf' --//Linux下的文件系统

  size 64m autoextend on next 64m maxsize 2048m extent management local;

  3、查看我们常规将用户表空间放置位置:执行如下sql:select name from v$datafile;

  4、创建用户表空间:

  CREATE TABLESPACE NOTIFYDB DATAFILE '/oracle/oradata/test/qiwei_test.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

  //表空间在系统数据文件中不存在这是我们需要重新建立的数据文件

  5、创建用户,指定密码和上边创建的用户表空间

  CREATE USER 用户 IDENTIFIED BY 用户密码 DEFAULT TABLESPACE NOTIFYDB;

  6、赋予权限

  grant connect,resource to 用户;

  grant unlimited tablespace to 用户;

  grant create database link to 用户;

  grant select any sequence,create materialized view to 用户;

  grant unlimited tablespace to 用户;//授予不限制的表空间

  grant select any table to 用户;//授予查询任何表

  grant是关键字,select any table是权限,to后面是用户账号

  --创建项目表

  create table test_V5_PROJECTS(

  PROJECT_ID NUMBER(10) constraint PK_test_V5_PROJECTS primary key,

  PROJECT_NAME varchar2(20) not null,

  BUSINESS_DEPT varchar2(40),

  CONTACTNAME varchar2(20),

  CONTACTTEL VARCHAR2(20),

  START_DATE date,

  CONTACTEMAIL varchar2(20),

  CREATE_OPER NUMBER(10),

  CREATE_TIME DATE DEFAULT SYSDATE NOT NULL

  );

  --添加注释

  comment on table test_V5_PROJECTS is '项目表';

  comment on column test_V5_PROJECTS.PROJECT_ID is '主键ID';

  comment on column test_V5_PROJECTS.PROJECT_NAME is '项目名称';

  comment on column test_V5_PROJECTS.BUSINESS_DEPT is '业务部门';

  comment on column test_V5_PROJECTS.CONTACTNAME is '接口联系人';

  comment on column test_V5_PROJECTS.CONTACTTEL is '联系人电话';

  comment on column test_V5_PROJECTS.START_DATE is '启动时间';

  comment on column test_V5_PROJECTS.CONTACTEMAIL is '邮箱';

  comment on column test_V5_PROJECTS.CREATE_OPER is '创建者';

  comment on column test_V5_PROJECTS.CREATE_TIME is '创建时间';

  平淡生活 16:18:15

  昨晚上我建好表之后又时候可以select 有时候提示错误

  primary key最好加constraint 名称,

  你自己的账号建立的表,你自己一定是有权限的

  授权语句,是授权给其它用户操作你的表或者你操作其它用户的表的

  下列权限对test通用,直接执行

  上面是授权,关键字grant

  “test”是用户账号

  7,--是否要先建立表之后给表授权带测试。

  grant insert,select,update,delete on table to user;

linux下如何在ORACLE数据库中创建新用户?_oracle_Linux_Linux系统_课课家

  二,修改密码删除用户及其所有空间和对象

  1,查看有DBA权限的用户表,语法:下面的语句本人没有测到它是做什么用的貌似数据太多,我没有仔细分析

  select * from dba_tables t where t.owner='用户id';

  dba_tables: 是有权限的DBA 用户id: oracle用户名

  查看当前用户下的表,看看此数据库有多少用户

  select table_name from user_tables

  --Oracle查询用户,表相关信息...

  --用户

  SELECT * FROM DBA_USERS;

  SELECT * FROM ALL_USERS;

  SELECT * FROM USER_USERS;

  --系统权限

  SELECT * FROM DBA_SYS_PRIVS;

  SELECT * FROM SESSION_PRIVS;

  SELECT * FROM USER_SYS_PRIVS;

  --角色

  SELECT * FROM USER_ROLE_PRIVS;

  SELECT * FROM DBA_ROLES;

  --对象权限

  select * from user_tab_privs where table_name like '%T_MDM_SMS_MESSAGE_TYPE%';

  select * from dba_tab_privs;

  select * from all_tab_privs;

  --表查询

  select * from user_tab_comments;

  select * from user_col_comments

  2,--//修改用户密码

  alter user test identified by new_password;

  3,--//删除表空间

  drop tablespace test_temp including CONTENTS and datafiles;

  4,--//删除用户

  drop user 用户名 cascade; --//执行该语句请小心,会级联删除该用户下所有对象。

  //cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数

  三,oracle中创建表并授权其他用户访问

  --创建项目表

  create table Test_V5_PROJECTS(

  PROJECT_ID NUMBER(10) constraint PK_Test_V5_PROJECTS primary key,

  PROJECT_NAME varchar2(20) not null,

  CONTACTTEL VARCHAR2(20),

  START_DATE date,

  CREATE_TIME DATE DEFAULT SYSDATE NOT NULL

  );

  --添加注释pl/sql中注释的写法

  comment on table Test_V5_PROJECTS is '项目表';

  comment on column Test_V5_PROJECTS.PROJECT_ID is '主键ID';

  comment on column Test_V5_PROJECTS.CREATE_TIME is '创建时间';

  primary key最好加constraint 名称,constraint是限制的意思。

  你自己的账号建立的表,你自己一定是有权限的

  授权语句,是授权给其它用户操作你的表或者你操作其它用户的表的

  下列权限对Test通用,直接执行

  “Test”是用户账号,admin是超级用户,其他都是关键字

  上面是授权,关键字grant ,grant是关键字,select any table是权限,to后面是用户账号

  四、数据库数据的导入导出

  1,-- 数据库导入1:正常情况 impdp bp_oracle/bp_oracle directory=dump_dir dumpfile=bp_oracle20120209.dmp

  2,-- 数据库导入2:映射情况

  impdp bp_oracle/bp_oracle directory=dump_dir dumpfile=ncp20120209.dmp remap_schema=ncp:bp_oracle remap_tablespace=ncp:bp_oracle

  3,-- 数据导出,可以带版本 expdp bp_oracle/bp_oracle DIRECTORY=dump_dir dumpfile=bp_oracle.dmp version=10.2.0.1.0

  4,导出数据库-- 导出数据库不带版本

  expdp bp_oracle/bp_oracle schemas=bp_oracle DUMPFILE=bp_oracle20120221.dmp DIRECTORY=DUMP_DIR JOB_NAME=full

  -- 导出数据库不带版本 带版本

  expdp bp_oracle/bp_oracle schemas=bp_oracle DIRECTORY=dump_dir dumpfile=bp_oracle20120221.dmp version=10.2.0.1.0

  -- 导出数据库不带版本 expdp bp_oracle/bp_oracle schemas=bp_oracle DUMPFILE=bp_oracle20120221.dmp DIRECTORY=DUMP_DIR JOB_NAME=full

  -- 导出数据库不带版本 带版本 expdp bp_oracle/bp_oracle schemas=bp_oracle DIRECTORY=dump_dir dumpfile=bp_oracle20120221.dmp version=10.2.0.1.0

  5,导出数据库中表中数据

  -- 导出数据 指定表名数据

  exp nmswxt_mhwz/nmswxt_mhwz file=/home/oracle/dmp/nmswxt_mhwz_news_content.dmp tables=NEWS_CONTENT

  -- 导入数据,带映射关系

  imp nmswxt_mhzz/nmswxt_mhzz file=/home/oracle/dmp/nmswxt_mhwz_news_content.dmp fromuser=nmswxt_mhwz touser=nmswxt_mhzz

  6,--建立物化视图授权 GRANT CREATE MATERIALIZED VIEW TO nmswxt_sw;

  7,--定时任务授权 grant create job to nmswxt_sw;

赞(14)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程