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

    作者:课课家教育更新于: 2016-02-19 11:48:03

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

      操作步骤如下:

      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;

课课家教育

未登录