- 浏览: 159554 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
追求幸福:
每增加一个新的activity, 都要为这个activity指 ...
关于setContentView -
雨过天晴0521:
感谢第一位留言的网友, 我会坚持下去
ADB push的用法 -
小光棍:
謝謝。整理出來的東西真有用!!
ADB push的用法
oracle中创建新的user, 也就相应地创建了一个新的schema, 用来区别其他目录的同时, 还保存所有相关user的数据对象以及user的表.
How to create a new user? (create a new db)
首先用system(默认密码为manager)用户登陆连接数据库.
The statement create user creates a user.
In the most simple form, the create user statement is one of the following three:
The first one creates a local user, the second one creates an external user while the last one creates global user.
How to create locked users?
A user can be created locked, that is, the user cannot connect to the database.
SQL> create user alfredo identified by passw0rd account lock;
The user is now created, he can be granted some rights, for example the right to connect to the database:
Now, if the user tries to connect to the database, he will get ORA-28000:
The user can now be unlocked with an alter user statement:
Which allows Alfredo to log on to the database now:
如何赋予用户权限或角色?
可以用grant直接给用户赋予权限, 也可以赋予用户角色, 角色可以看做是权限的集合.
这里我们只讨论角色, 权限可以参考http://www.techonthenet.com/oracle/grant_revoke.php
注意前面grant仅仅赋予了用户connect role, 这个role仅仅是给予用户的一些常见权利,最基本的, 不包括创建表等privileges
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
如需要可以再赋予resource角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
但是实际查找oracle 10 2.0.1.0 系统时,发现两个role的privileges和上诉有所不同:
用sys登陆到oracle中,执行以下两条语句:
select * from role_sys_privs WHERE ROLE LIKE 'CONNECT'; --查询connect角色的权限
select * from role_sys_privs WHERE ROLE LIKE 'RESOURCE'; --查询 resource角色的权限
CONNECT角色: --是授予终端用户的典型权利,最基本的
CREATE SESSION --建立会话
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
CREATE OPERATOR --创建操作者
CREATE INDEXTYPE --创建索引类型
CREATE TABLE --创建表
也就是说不同oracle版本两个role的privilege会有所区别.
如何删除user(schema)?
如果想要快速的删除一个Schema下的所有数据库对象,您会使用什么样的手段来完成呢?
如果您是DBA,可能更倾向于先删除用户(Drop User)然后再重新创建用户。
优点:删除的彻底,不留任何痕迹(这是DBA伟大和危险的真实体现)。
缺点:要求的操作权限比较高,往往需要DBA亲力亲为;有一定误操作的风险;不便于书写到自动化脚本中,因为在当前用户有session连接的情况下是无法实现用户删除的。
如果drop user 用户名: 时出现下边的错误:
情况 1.
12:19:13 [DROP - 0 row(s), 0.000 secs] [Error Code: 1922, SQL State: 42000] ORA-01922: CASCADE must be specified to drop 'MIKE'
drop user 用户名 cascade;
注意:
drop user xx :只是删除用户
drop user xx cascade :会删除此用户名下的所有表和视图
情况 2.
由于当前用户正连接到数据库,所以无法删除
解决办法:
1) 查询此用户的会话进程,
2) 结束此用户的所有会话
3) 删除用户
如果您是一名开发人员,可能会倾向于使用开发工具(如Toad、PL/SQL Developer等)点选的方式完成清理工作。
优点:要求权限不高,如果工具功能掌握熟练可以较快的完成删除任务。
缺点:无法实现自动化和批量操作的目的,人工成本太高,效率极低;存在工具软件异常假死的现象,不推荐使用。
How to create a new user? (create a new db)
首先用system(默认密码为manager)用户登陆连接数据库.
The statement create user creates a user.
In the most simple form, the create user statement is one of the following three:
create user alfredo identified by alfredos_secret; create user alfredo identified externally; create user alfredo identified globally as 'external_name';
The first one creates a local user, the second one creates an external user while the last one creates global user.
How to create locked users?
A user can be created locked, that is, the user cannot connect to the database.
SQL> create user alfredo identified by passw0rd account lock;
The user is now created, he can be granted some rights, for example the right to connect to the database:
SQL> grant connect to alfredo;
Now, if the user tries to connect to the database, he will get ORA-28000:
SQL> connect alfredo/passw0rd ERROR: ORA-28000: the account is locked
The user can now be unlocked with an alter user statement:
SQL> alter user alfredo account unlock;
Which allows Alfredo to log on to the database now:
SQL> connect alfredo/passw0rd Connected.
如何赋予用户权限或角色?
可以用grant直接给用户赋予权限, 也可以赋予用户角色, 角色可以看做是权限的集合.
这里我们只讨论角色, 权限可以参考http://www.techonthenet.com/oracle/grant_revoke.php
注意前面grant仅仅赋予了用户connect role, 这个role仅仅是给予用户的一些常见权利,最基本的, 不包括创建表等privileges
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
如需要可以再赋予resource角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
SQL> grant connect, resource to alfredo;
但是实际查找oracle 10 2.0.1.0 系统时,发现两个role的privileges和上诉有所不同:
用sys登陆到oracle中,执行以下两条语句:
select * from role_sys_privs WHERE ROLE LIKE 'CONNECT'; --查询connect角色的权限
select * from role_sys_privs WHERE ROLE LIKE 'RESOURCE'; --查询 resource角色的权限
CONNECT角色: --是授予终端用户的典型权利,最基本的
CREATE SESSION --建立会话
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
CREATE OPERATOR --创建操作者
CREATE INDEXTYPE --创建索引类型
CREATE TABLE --创建表
也就是说不同oracle版本两个role的privilege会有所区别.
如何删除user(schema)?
如果想要快速的删除一个Schema下的所有数据库对象,您会使用什么样的手段来完成呢?
如果您是DBA,可能更倾向于先删除用户(Drop User)然后再重新创建用户。
优点:删除的彻底,不留任何痕迹(这是DBA伟大和危险的真实体现)。
缺点:要求的操作权限比较高,往往需要DBA亲力亲为;有一定误操作的风险;不便于书写到自动化脚本中,因为在当前用户有session连接的情况下是无法实现用户删除的。
如果drop user 用户名: 时出现下边的错误:
情况 1.
12:19:13 [DROP - 0 row(s), 0.000 secs] [Error Code: 1922, SQL State: 42000] ORA-01922: CASCADE must be specified to drop 'MIKE'
drop user 用户名 cascade;
注意:
drop user xx :只是删除用户
drop user xx cascade :会删除此用户名下的所有表和视图
情况 2.
SQL〉DROP USER mike01 CASCADE ERROR:ORA-01940: cannot drop a user that is currently connected
由于当前用户正连接到数据库,所以无法删除
解决办法:
1) 查询此用户的会话进程,
SQL〉SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='mike01'; SID SERIAL# ---------- ---------- 24 25341 86 18117
2) 结束此用户的所有会话
SQL>ALTER SYSTEM KILL SESSION '24,25341'; System altered. SQL>ALTER SYSTEM KILL SESSION '86,18117'; System altered.
3) 删除用户
SQL〉DROP USER USER1 CASCADE;
如果您是一名开发人员,可能会倾向于使用开发工具(如Toad、PL/SQL Developer等)点选的方式完成清理工作。
优点:要求权限不高,如果工具功能掌握熟练可以较快的完成删除任务。
缺点:无法实现自动化和批量操作的目的,人工成本太高,效率极低;存在工具软件异常假死的现象,不推荐使用。
发表评论
-
Linux下安装SF oracle
2013-08-06 16:43 754在使用oracle enabler时需要在engine运行的系 ... -
ORA-01940 如何drop user
2013-03-27 19:28 1513使用drop user bpmuser cascade时遇到以 ... -
如何向apacheDS添加新的user
2013-03-01 12:24 20131.Right-click on the ou=users n ... -
如何导入apache DS的数据
2013-02-28 19:35 15791. 安装好ApacheDS后, 启动ApacheDS ser ... -
ORA-01119: error in creating database file ***
2013-02-20 19:24 6785case1.今天在运行amx-bpm deploy-bpm的脚 ... -
(转)Oracle用户、权限、角色管理介绍
2013-02-20 14:15 775转自:http://blog.csdn.net/jun ... -
about Teradata SQL
2012-11-09 14:37 959http://www.razorsql.com/docs/te ... -
How to change the password for a user in Oracle
2012-11-09 14:34 1018Answer: To change a user's pas ... -
Modify password of an accnout in SQL Server
2012-11-09 14:32 806http://msdn.microsoft.com/en-us ... -
Ant执行SQL server 存储过程时的一个问题
2012-11-07 15:31 1483在ant上执行SQL server的存储过程, 事务不会自动提 ... -
How to forcely drop tables in SQL Server 2008
2012-11-01 17:25 847This script can drop a SQL Serv ... -
Ant中执行oracle存储过程
2012-06-08 15:08 1347同样的oracle dll脚本: declare c int ... -
如何在ant中调用javascript
2012-05-25 20:30 1555在java6中内置了一个javascript的engine: ... -
如何创建SQL Server 2008的数据库
2012-05-09 19:56 1108step 1.打开SQL Server Managem ... -
详解Oracle用户解锁命令的两则实现方法
2011-08-10 18:58 888在安装完Oracle 10g之后,想打开sql*plus来学习 ... -
Oracle客户端连接数据库总结
2011-08-10 18:56 1145tnsnames.ora文件 这个文件类似于unix 的h ... -
oracle中几个配置文件的作用
2011-08-10 18:55 961tnsname.ora 是客户端用来查找,连接lis ... -
忘记oracle数据库密码怎么办
2011-08-10 18:49 1110很久不用的oralce数据库,如果忘记了密码,可以这样 ...
相关推荐
这创建了一个名为MyUser的新用户,密码为password,并赋予了创建表和索引的权限。 6. **创建序列**:序列是Oracle中的一个特殊对象,用于生成唯一的整数序列号。例如: ```sql CREATE SEQUENCE seq_employee_id ...
在Oracle中,虽然有`CREATE SCHEMA`语句,但这并不是用来直接创建新的Schema的,而是通过创建用户来间接实现Schema的创建。因此,Schema的数目与User的数目相同,每个Schema都有一个与之对应且同名的User。 当我们...
创建新用户"hr"的SQL语句可能如下: ```sql CREATE USER hr IDENTIFIED BY password; GRANT CONNECT, RESOURCE, CREATE VIEW TO hr; ``` 这里,`IDENTIFIED BY password`指定了用户的密码,`CONNECT`、`RESOURCE`...
1. **创建用户并授权**:定义一个新用户,为其分配密码,并赋予连接到数据库和管理对象的权限。 ```sql CREATE USER hr IDENTIFIED BY password; GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE INDEX, ...
- 点击 **New Export** 创建新的导出任务。 - 在 **Schema** 标签页下,选择需要导出的 Schema。 - 在 **Items to Export** 部分,可以选择导出所有表或特定表。 - 在 **Params** 选项卡中: - **Content to export...
首先,创建一个新用户在Oracle中涉及到几个关键步骤,包括定义用户名、密码、默认表空间、临时表空间以及权限设置。以下是一个简单的创建HR用户的SQL脚本示例: ```sql CREATE USER hr IDENTIFIED BY Welcome123; `...
本篇文章将深入解析如何在Oracle中创建表空间、创建用户以及如何将权限授予新创建的用户。 一、创建表空间 在Oracle中,表空间用于组织和存储数据库对象,如表、索引、视图等。创建表空间的步骤如下: 1. **定义...
在这个例子中,我们创建了一个名为`usertest`的新用户,其默认表空间为`TEST_DATA`,临时表空间为`TEST_TEMP`。 ### 三、授权 #### 3.1 授权用户 在Oracle中,管理员可以通过GRANT语句来授予用户各种权限。例如,...
通过Oracle HR Schema,用户可以学习如何设计和管理关系数据库,理解SQL语言,以及如何在实际业务环境中使用Oracle数据库。对于开发者和DBA来说,这是一个极好的实践平台,可以加深对数据库管理和开发的理解。
Oracle 11g对XML的支持进一步加强,包括更快的XML索引、XML Schema支持和XML数据类型增强,使得处理XML数据更加便捷。 以上只是Oracle 11g新特性的一部分,实际的学习资料可能涵盖了更多细节和实用技巧。通过深入...
-- 创建新的表 EXECUTE IMMEDIATE 'CREATE TABLE WJT_' || v_string2 || '(ID NUMBER, NAME VARCHAR2(10))'; -- 检查视图是否存在,如果存在则删除 SELECT COUNT(1) INTO v_cnt FROM USER_VIEWS WHERE VIEW_...
当创建一个新用户时,Oracle会自动为该用户创建一个同名的Schema。用户可以通过自己的Schema来管理对象,执行数据操作。在企业级应用中,经常会有多个Schema共享同一个数据库实例,这使得资源分配和权限管理更为灵活...
4. **处理权限和角色**:根据schema文件中的定义,可能需要创建用户、角色并分配相应的权限。这通常涉及到`GRANT`和`REVOKE`语句。 5. **验证结果**:导入完成后,通过查询数据库来验证是否正确创建了所有预期的...
- **Create New Connection**:指导用户创建新的连接。 - **Selecting Connection Color**:允许用户为不同的连接选择颜色以便区分。 - **SET ROLE**:讲述了如何使用SET ROLE命令切换角色。 - **Auto Connect**:...
在SQL中,Schema通常以用户名的形式出现,比如`CREATE SCHEMA 用户名`命令用于创建一个新的Schema。在创建表时,可以指定该表属于哪个Schema,如`CREATE TABLE 用户名.表名 (...)`. 这样做有助于保持数据库的整洁,...
假设需要将一个名为`EXPDAT.dmp`的DMP文件从用户`qfyx`的`qfyx_ts`表空间导入到新用户`qctyx`下的`qctyx_ts`表空间中,可以按照以下步骤操作: 1. **创建表空间和用户**: - 创建表空间`qctyx_ts`。 - 创建用户`...
`ot_create_user.sql`用于创建新的数据库用户,并可能包含分配权限和角色的部分。这在实际环境中很重要,因为你需要控制谁可以访问数据库,以及他们能进行哪些操作。学习者可以通过这个文件了解如何管理用户账户,...
本文主要介绍了力控与Oracle数据库的连接配置注意事项,并提供了详细的步骤指导用户如何创建新的数据库、用户和数据表,并与力控进行连接。 一、Oracle数据库的结构 Oracle数据库的结构简单来说可以表示为数据库→...
- **CONNECT**: 拥有Connect权限的用户可以登录Oracle,但不能创建实体或数据库结构。 对于不同类型的用户,权限授予也有所不同: - **普通用户**:通常授予`CONNECT`和`RESOURCE`权限。 - **DBA管理用户**:除了`...