Oracle21C创建用户
1. 连接数据库
在命令行使用:
sqlplus system/<password>@//<hostname>:<port>/<service_name>
# 示例
sqlplus system/123456
sqlplus / as sysdba
使用图形化工具(datgrip2019.3):
使用sys
用户时连接会报错。如下所示:
The specified database user/password combination is rejected: [99999][28009] ORA-28009: 应当以 SYSDBA 身份或 SYSOPER 身份建立 SYS 连接
这时候应该将用户名改为sys as sysdba
或者sys as sysoper
。也可以使用system
用户登录。
2. 需要远程连接数据库
安装参考文献
工具包下载地址
3. 用户管理
3.1 创建用户
CREATE USER c##newuser1 IDENTIFIED BY 123456;
3.2 分配存储空间配额
然后,为用户在特定表空间(例如SYSTEM
表空间)上设置存储空间配额。在这个例子中,用户被赋予了在SYSTEM
表空间上的无限配额
ALTER USER c##newuser1 QUOTA UNLIMITED ON "SYSTEM";
3.3 赋予权限
# 为新用户授予创建视图的权限:
GRANT CREATE VIEW TO c##newuser1;
# 授予用户权限以查询任何表:
GRANT SELECT ANY TABLE TO c##newuser1;
# 授予用户访问数据字典视图的权限:
GRANT SELECT ANY DICTIONARY TO c##newuser1;
3.4 分配角色
授予用户DBA
角色,这是一个强大的角色,包含数据库的高级管理权限。请注意,只有在完全信任用户并且用户需要广泛的数据库管理权限时,才应该授予DBA
角色:
GRANT "DBA" TO c##newuser1;
设置用户的默认角色为DBA
:
ALTER USER c##newuser1 DEFAULT ROLE "DBA";
注意事项
- 在为用户分配DBA角色之前,请仔细考虑是否有必要。DBA角色授予用户几乎所有的权限和访问权,可能会带来安全风险。
- 在生产环境中,最佳实践是遵循最小权限原则,即只授予用户完成其任务所需的最少权限。
- 在使用QUOTA UNLIMITED ON "SYSTEM"时要小心,因为SYSTEM表空间通常包含关键的系统对象。通常,用户数据应该存储在用户自己的表空间中,而不是SYSTEM表空间。
- 在授予SELECT ANY TABLE和SELECT ANY DICTIONARY权限时也应当谨慎,因为这些权限允许用户查询数据库中的任何表和数据字典视图,可能会泄露敏感信息。
通过遵循上述步骤和建议,您可以在Oracle数据库中成功创建用户并根据需要为其分配适当的权限和角色。