1. Oracle 数据库中的三类用户
在 Oracle 数据库中,用户可以分为三类:
- SYSDBA 用户:该类用户拥有最高权限,能够执行数据库的所有管理任务,包括启动和关闭数据库、创建或删除数据库对象等。SYS 用户是系统默认的超级用户,同时具备 SYSDBA 和 SYSOPER 权限。
- SYSOPER 用户:这类用户也拥有较高权限,主要用于数据库的日常管理,如启动和关闭数据库、备份数据等,但不具有修改数据字典的权限。
- 普通用户:普通用户是指在数据库中没有特别管理权限的用户,他们的权限通常由 DBA 或拥有相应权限的用户赋予。普通用户只能访问他们自己拥有的对象,除非另有授权。
1.1 特权用户的登录方式
在 Oracle 数据库中,用户登录时可以使用特定的权限登录,比如以 SYSDBA 或 SYSOPER 权限登录。具体操作如下:
sqlplus scott/tiger AS SYSDBA
如果用户以 AS SYSDBA
方式登录,那么他将成为 SYS 用户,拥有全部权限,可以无条件访问任何用户的数据:
SQL> SELECT * FROM user1.table1;
而如果以 AS SYSOPER
方式登录,虽然用户也可以管理数据库,但无法访问其他用户的数据。
2. 如何创建用户
在 Oracle 数据库中,创建用户通常由 SYS 用户完成。普通用户也可以创建用户,但前提是必须具备 CREATE USER
系统权限。创建用户的命令是 CREATE USER
,其语法如下:
CREATE USER 用户名 IDENTIFIED BY "口令"
DEFAULT TABLESPACE 表空间
TEMPORARY TABLESPACE 临时表空间
QUOTA 空间配额大小 ON 表空间
PASSWORD EXPIRE
ACCOUNT LOCK|UNLOCK;
- DEFAULT TABLESPACE:指定用户的默认表空间,用于存储用户创建的对象。
- TEMPORARY TABLESPACE:指定用户的临时表空间,主要用于排序操作等临时数据存储。
- QUOTA:限制用户在指定表空间上可以使用的存储空间大小,可以以 KB、MB 等单位表示。
- PASSWORD EXPIRE:创建用户时立即过期用户的口令,强制用户首次登录时修改口令。
- ACCOUNT LOCK/UNLOCK:锁定或解锁用户账号,锁定后用户无法登录。
例如,下面的 SQL 语句用于创建一个名为 user1
的用户,并为其指定相应的属性:
SQL> CREATE USER user1 IDENTIFIED BY "1234"
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 200M ON users
PASSWORD EXPIRE
ACCOUNT UNLOCK;
3. 如何修改用户信息
修改用户信息通常包括修改口令、表空间配额以及账号状态等操作。ALTER USER
命令是用于修改用户信息的主要方式。
例如,要修改 user1
用户的口令,可以使用以下 SQL 语句:
ALTER USER user1 IDENTIFIED BY "new_password";
还可以通过 SQL*Plus
提供的 PASSWORD
命令来修改用户的口令:
SQL> PASSWORD 用户名
用户的默认表空间、临时表空间及其配额等属性也可以通过 ALTER USER
命令进行修改:
SQL> ALTER USER user1 DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;
4. 如何删除用户
当一个用户不再需要访问数据库时,应该将其删除。删除用户的操作一般由 SYS 用户完成,或由具备 DROP USER
权限的用户来完成。删除用户的命令是 DROP USER
:
DROP USER 用户名;
例如,要删除用户 scott
,可以执行以下 SQL 语句:
SQL> DROP USER scott CASCADE;
注意,如果不加 CASCADE
关键字,系统会报错,因为用户可能拥有数据库对象,而 CASCADE
参数会连同用户拥有的对象一并删除。
Oracle 数据库中的用户管理功能非常强大,涵盖了从创建、修改到删除用户的方方面面。通过掌握这些基本操作,DBA 可以有效管理数据库用户及其权限,从而确保数据库的安全性和可用性。
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。
学习成功人士的经验,提供全面的学习资源和社群支持,多种副业选择,总有一个适合你。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。