Oracle21C创建用户

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数据库中成功创建用户并根据需要为其分配适当的权限和角色。

posted @ 2024-08-23 17:19  零の守墓人  阅读(29)  评论(0编辑  收藏  举报