ORACLE新增,授权,修改,删除用户

本文详细介绍如何在Oracle数据库中创建、修改、删除用户及授权过程。包括新建用户、更改密码、删除用户及其相关表等操作,并提供了如何进行权限授权与回收的具体SQL命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ORACLE新增,授权,修改,删除用户

select username from dba_users;–查看数据库中所有用户的名称;

create user mike identified by 3713;–新建用户

alter user mike identified by 3714;–改密用户

drop user mike;–删除用户

drop user mike cascade;–同时删除与mike相关的表;

//授权
grant connect to mike;–登录授权;

grant select on emp to mike;–scott用户为mike赋予表emp的select权限;

grant select on scott.emp to mike;–sys用户为mike赋予表emp的select权限;

grant select,insert,delete,update on scott.emp to mike;–授予增删改查权限

grant connect,resource to mike;

resource的权限包括:http://blog.youkuaiyun.com/henulwj/article/details/8032677

//权限回收
revoke select on emp from mike;–scott用户回收mike对emp表的select权限;

revoke select on scott.emp from mike;–sys用户回收mike对emp表的select权限;

//查看权限与角色
select * from session_privs;–查看当前用户本身具有的权限

select * from user_role_privs;–查看当前用户本身具有的角色

select * from user_role_privs where GRANTED_ROLE=’CONNECT’;–查看connect角色有哪些权限

ORACLE新增,授权,修改,删除用户

select username from dba_users;--查看数据库中所有用户的名称;

create user mike identified by 3713;--新建用户

alter user mike identified by 3714;--改密用户

drop user mike;--删除用户

drop user mike cascade;--同时删除与mike相关的表;

//授权
grant connect to mike;--登录授权;

grant select on emp to mike;--scott用户为mike赋予表emp的select权限;

grant select on scott.emp to mike;--sys用户为mike赋予表emp的select权限;

grant select,insert,delete,update on scott.emp to mike;--授予增删改查权限

grant connect,resource to mike;

resource的权限包括:http://blog.youkuaiyun.com/henulwj/article/details/8032677

//权限回收
revoke select on emp from mike;--scott用户回收mike对emp表的select权限;

revoke select on scott.emp from mike;--sys用户回收mike对emp表的select权限;

//查看权限与角色
select * from session_privs;--查看当前用户本身具有的权限

select * from user_role_privs;--查看当前用户本身具有的角色

select * from user_role_privs  where GRANTED_ROLE='CONNECT';--查看connect角色有哪些权限
<think>好的,我现在要帮用户在CentOS 7上为Oracle 11g数据库添加新用户并创建数据库。首先,我需要回顾用户之前的问题和我的回答,确保这次回答的一致性。用户之前问过如何查看防火墙状态,现在转向Oracle的安装和配置,尤其是用户数据库的创建。 首先,用户提到参考了三个引用,这些引用涉及安装Oracle 11g的步骤,包括创建用户组、安装依赖包、配置内核参数等。但用户当前的请求是添加新用户并创建数据库,所以需要明确用户的需求:可能是在已经安装好的Oracle环境中新增用户,或者是在安装过程中创建必要的用户数据库。 根据引用内容,用户可能在安装Oracle时已经创建了oracle用户和oinstall、dba组。现在用户想添加新的数据库用户,比如应用程序使用的用户,或者创建新的数据库实例。需要分清楚是操作系统用户还是Oracle数据库内的用户。但根据问题描述,“添加新用户并创建数据库”可能指的是在Oracle数据库内创建用户,同时可能还要创建新的数据库实例。 不过,通常在Oracle中,一个实例对应一个数据库,所以创建数据库可能指的是创建一个新的实例和对应的数据库。而添加新用户可能是在已有数据库中创建用户,或者在新数据库中创建。 首先,我需要确定用户是否已经完成了Oracle 11g的安装。根据引用中的步骤,用户可能已经安装了Oracle,现在需要配置。因此,接下来的步骤可能包括: 1. 确保Oracle安装完成,环境变量正确设置。 2. 使用Oracle数据库配置助手(DBCA)创建新数据库。 3. 使用SQL*Plus或SQL命令创建新用户授权。 但用户可能需要更详细的步骤,尤其是在CentOS 7上的具体操作,比如以oracle用户运行相关工具,设置环境变量,处理权限问题等。 另外,用户可能遇到的常见问题包括权限不足、环境变量未正确设置、监听器配置问题等。需要在回答中涵盖这些潜在问题及解决方法。 需要检查用户提供的引用内容,特别是引用[1]中提到的创建oracle用户和组,引用[3]中的依赖包安装。这些步骤可能已经完成,现在用户需要进一步的数据库配置。 可能的步骤: 1. 切换到oracle用户,配置环境变量(如ORACLE_HOME, ORACLE_SID, PATH等)。 2. 使用DBCA图形界面或静默模式创建新数据库。 3. 使用SQL*Plus连接到数据库实例,创建新用户并分配权限。 4. 验证新用户是否能连接并操作数据库。 另外,需要注意Oracle 11g在CentOS 7上的兼容性问题,可能需要调整内核参数和安装额外的依赖包,如引用[3]中提到的。如果在安装过程中遗漏了某些步骤,可能会导致创建数据库失败,因此需要提醒用户检查这些前置条件。 此外,用户可能需要了解如何启动和停止数据库实例,如何配置监听器等。如果用户是第一次创建数据库,可能需要详细指导这些步骤。 总结回答结构: 1. 确认Oracle安装和配置完成。 2. 创建新数据库实例(使用DBCA)。 3. 在数据库中创建新用户。 4. 验证和测试。 5. 常见问题解决。 需要详细说明每个步骤的具体命令和操作,尤其是以oracle用户执行的部分,以及必要的SQL命令。同时,需要引用之前提到的参考内容,比如内核参数修改用户组创建等,以确保用户已完成前置步骤。 可能还需要提醒用户关于权限的问题,例如新用户需要适当的系统权限和数据库角色,如dba角色或自定义权限。 最后,生成相关问题,帮助用户进一步学习,比如如何备份数据库、如何配置网络监听器等。</think>### CentOS 7 上为 Oracle 11g 添加用户并创建数据库的详细步骤 --- #### **一、前置条件确认** 1. **Oracle 11g 已正确安装** 确保已完成以下操作(根据引用内容整合): - 已创建用户和组: ```bash groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle ``` - 已安装依赖包: ```bash yum –y install binutils compat-libstdc++-33 elfutils-libelf-devel gcc-c++ glibc-devel libaio-devel libstdc++-devel make sysstat unixODBC-devel ``` - 已修改内核参数(参考 `/etc/sysctl.conf`)并生效[^1]。 2. **Oracle 环境变量配置** 以 `oracle` 用户登录,检查 `~/.bash_profile` 是否包含以下配置: ```bash export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl # 默认实例名 export PATH=$PATH:$ORACLE_HOME/bin ``` 执行 `source ~/.bash_profile` 使配置生效。 --- #### **二、创建新数据库实例** 使用 **DBCA(Database Configuration Assistant)** 创建数据库: 1. **启动 DBCA(图形界面)** ```bash # 切换到 oracle 用户 su - oracle # 启动 DBCA dbca ``` - **操作步骤**: 1. 选择 **Create a Database** 2. 选择 **General Purpose or Transaction Processing** 3. 输入全局数据库名(如 `newdb`)和 SID(如 `newdb`) 4. 配置管理员密码(如 SYS/SYSTEM 用户) 5. 选择存储类型(默认文件系统) 6. 指定数据库文件位置(默认或自定义路径) 7. 完成配置并等待创建完成[^2]。 2. **静默模式创建(无图形界面)** ```bash dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname newdb -sid newdb \ -sysPassword 密码 -systemPassword 密码 \ -storageType FS \ -datafileDestination /u01/app/oracle/oradata \ -characterSet AL32UTF8 \ -totalMemory 2048 \ -emConfiguration NONE ``` --- #### **三、在数据库中创建新用户** 1. **连接到数据库实例** ```bash sqlplus / as sysdba ``` - 若提示“Connected to an idle instance”,需先启动数据库: ```sql STARTUP; ``` 2. **创建表空间(可选)** ```sql CREATE TABLESPACE users_data DATAFILE '/u01/app/oracle/oradata/newdb/users01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED; ``` 3. **创建用户授权** ```sql CREATE USER app_user IDENTIFIED BY 密码 DEFAULT TABLESPACE users_data TEMPORARY TABLESPACE temp; GRANT CONNECT, RESOURCE TO app_user; GRANT CREATE SESSION, CREATE TABLE TO app_user; ``` 4. **验证用户** ```sql CONNECT app_user/密码; -- 测试创建表 CREATE TABLE test (id NUMBER); INSERT INTO test VALUES (1); COMMIT; ``` --- #### **四、常见问题解决** | **问题** | **解决方案** | |-----------------------------------|-----------------------------------------------------------------------------| | **DBCA 启动失败** | 检查 DISPLAY 变量是否设置(图形界面需配置 X11 转发或使用 VNC)[^3]。 | | **用户无权限创建表** | 确保已授予 `CREATE TABLE` 权限:`GRANT CREATE TABLE TO app_user;`。 | | **数据库实例无法启动** | 检查 `ORACLE_SID` 是否匹配,或通过 `sqlplus / as sysdba` 执行 `STARTUP`。 | | **监听器未配置导致连接失败** | 配置监听器:`netca` 或手动编辑 `$ORACLE_HOME/network/admin/listener.ora`。 | --- #### **五、关键命令汇总** ```bash # 启动/停止数据库实例 sqlplus / as sysdba STARTUP; SHUTDOWN IMMEDIATE; # 查看当前数据库实例 SELECT name FROM v$database; # 删除用户及表空间 DROP USER app_user CASCADE; DROP TABLESPACE users_data INCLUDING CONTENTS AND DATAFILES; ``` --- ### **相关问题** 1. **如何备份 Oracle 11g 数据库?** > 使用 RMAN 工具或导出数据泵: > ```bash > expdp system/密码 DIRECTORY=DATA_PUMP_DIR DUMPFILE=backup.dmp FULL=Y > ``` 2. **如何配置 Oracle 监听器(Listener)?** > 运行 `netca` 配置向导,或手动修改 `listener.ora` 文件[^2]。 3. **如何调整 Oracle 内存分配?** > 修改 `SPFILE`: > ```sql > ALTER SYSTEM SET sga_max_size=2G SCOPE=spfile; > ALTER SYSTEM SET sga_target=2G SCOPE=spfile; > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值