为执行 CRUD(在 Oracle 12 上)赋予用户的角色和权限是什么
What are roles and privileges to give a user in order to perform CRUD(on Oracle 12)
我正在使用 TOAD 在 Oracle 12 c 数据库上创建一个 USER。
创建 TABLESPACE 后,我正在创建 USER。我对可以授予用户的许多 ROLES 和 PRIVILEGES 有点困惑。
为了执行 CRUD 操作并能够 'edit' 数据库(创建或从 TOAD 中删除 table, DROP the schema ecc)?
谢谢
一个link到the documentation - Privileges
授予用户以下权限:
- CREATE SESSION(为了让用户连接到数据库)
- 插入
- 更新
- 删除
- SELECT
使用以下命令向用户授予权限(您需要以 SYS 或 SYSTEM 或其他具有 GRANT 权限的用户身份登录):
GRANT CREATE SESSION, SELECT, UPDATE, DETETE, INSERT TO user_name
这取决于你要执行什么操作。如果您只想在自己的数据库架构中使用 tables,那么通常以下权限就足以启动:
grant create session to <your_user>;
grant create table to <your_user>;
您拥有您拥有的 insert/update/delete/select table 的默认权利。
表空间配额:
alter user <your_user> quota unlimited on <your_tablespace_name>;
最好为用户设置默认的table空间。在这种情况下,您可以在创建 table 语句中省略 table 空间名称。
alter user <your_user> default tablespace <your_tablespace_name>;
这是您可能(或可能不想)遵循的建议。
作为特权用户(例如 SYS),检查数据库中可用的表空间。我使用的是 11g XE(Express 版),显示如下:
SQL> show user
USER is "SYS"
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP --> temporary
USERS --> my data
现在,创建一个用户:
SQL> create user mdp identified by pdm
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
User created.
很久以前,有两个流行的预定义角色,名为 CONNECT 和 RESOURCE,它们被授予了一些最常见的权限,因此人们 喜欢 将这些角色授予新的创建用户。
如今,您不应该这样做:仅授予您的用户可能需要的 最小 一组权限。第一个是CREATE SESSION
;没有它,您的用户甚至无法建立连接。
SQL> grant create session to mdp;
Grant succeeded.
然后,您需要创建一些表 - 授予它:
SQL> grant create table to mdp;
Grant succeeded.
好的,让我们以新创建的用户身份连接并做点什么:
SQL> connect mdp/pdm@xe
Connected.
SQL> create table test (id number);
Table created.
SQL> insert into test id values (1);
1 row created.
SQL> drop table test;
Table dropped.
SQL>
不错;我可以从中创建表格 insert/update/delete/select。对于开始,这就足够了。然而,当事实证明你想要,例如,创建一个视图,它不会工作,直到你授予它该权限:
SQL> create view v_dual as select * From dual;
create view v_dual as select * From dual
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> connect sys@xe as sysdba
Enter password:
Connected.
SQL> grant create view to mdp;
Grant succeeded.
SQL> connect mdp/pdm@xe
Connected.
SQL> create view v_dual as select * From dual;
View created.
SQL>
等等;不要仅仅因为您可能需要它就授予任何东西 - 授予它当您需要它时。特别要注意系统权限,如果您不知道自己在做什么,这可能会很危险。
我正在使用 TOAD 在 Oracle 12 c 数据库上创建一个 USER。
创建 TABLESPACE 后,我正在创建 USER。我对可以授予用户的许多 ROLES 和 PRIVILEGES 有点困惑。
为了执行 CRUD 操作并能够 'edit' 数据库(创建或从 TOAD 中删除 table, DROP the schema ecc)?
谢谢
一个link到the documentation - Privileges
授予用户以下权限:
- CREATE SESSION(为了让用户连接到数据库)
- 插入
- 更新
- 删除
- SELECT
使用以下命令向用户授予权限(您需要以 SYS 或 SYSTEM 或其他具有 GRANT 权限的用户身份登录):
GRANT CREATE SESSION, SELECT, UPDATE, DETETE, INSERT TO user_name
这取决于你要执行什么操作。如果您只想在自己的数据库架构中使用 tables,那么通常以下权限就足以启动:
grant create session to <your_user>;
grant create table to <your_user>;
您拥有您拥有的 insert/update/delete/select table 的默认权利。
表空间配额:
alter user <your_user> quota unlimited on <your_tablespace_name>;
最好为用户设置默认的table空间。在这种情况下,您可以在创建 table 语句中省略 table 空间名称。
alter user <your_user> default tablespace <your_tablespace_name>;
这是您可能(或可能不想)遵循的建议。
作为特权用户(例如 SYS),检查数据库中可用的表空间。我使用的是 11g XE(Express 版),显示如下:
SQL> show user
USER is "SYS"
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP --> temporary
USERS --> my data
现在,创建一个用户:
SQL> create user mdp identified by pdm
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
User created.
很久以前,有两个流行的预定义角色,名为 CONNECT 和 RESOURCE,它们被授予了一些最常见的权限,因此人们 喜欢 将这些角色授予新的创建用户。
如今,您不应该这样做:仅授予您的用户可能需要的 最小 一组权限。第一个是CREATE SESSION
;没有它,您的用户甚至无法建立连接。
SQL> grant create session to mdp;
Grant succeeded.
然后,您需要创建一些表 - 授予它:
SQL> grant create table to mdp;
Grant succeeded.
好的,让我们以新创建的用户身份连接并做点什么:
SQL> connect mdp/pdm@xe
Connected.
SQL> create table test (id number);
Table created.
SQL> insert into test id values (1);
1 row created.
SQL> drop table test;
Table dropped.
SQL>
不错;我可以从中创建表格 insert/update/delete/select。对于开始,这就足够了。然而,当事实证明你想要,例如,创建一个视图,它不会工作,直到你授予它该权限:
SQL> create view v_dual as select * From dual;
create view v_dual as select * From dual
*
ERROR at line 1:
ORA-01031: insufficient privileges
SQL> connect sys@xe as sysdba
Enter password:
Connected.
SQL> grant create view to mdp;
Grant succeeded.
SQL> connect mdp/pdm@xe
Connected.
SQL> create view v_dual as select * From dual;
View created.
SQL>
等等;不要仅仅因为您可能需要它就授予任何东西 - 授予它当您需要它时。特别要注意系统权限,如果您不知道自己在做什么,这可能会很危险。