oracle 创建一个能够增删查改表的账户,但是没有alter权限
时间: 2023-12-21 08:07:08 浏览: 64
可以使用以下语句来创建一个能够增删查改表的账户,但是没有alter权限的用户:
```sql
CREATE USER username IDENTIFIED BY password;
GRANT CREATE SESSION TO username;
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name TO username;
```
这将创建一个名为"username"的用户,并授予该用户创建会话和对指定表进行SELECT、INSERT、UPDATE和DELETE操作的权限。由于该用户没有ALTER权限,因此不能修改表结构。
相关问题
oracle 创建一个能够增删查改表的账户,但是没有alter权限。用户需要不带schema,可直接查询
你可以使用以下步骤创建一个能够增删查改表但没有alter权限的用户,并使其能够不带schema直接查询:
1. 使用sysdba权限登录到Oracle数据库中。
2. 创建用户并授予必要的权限:
```
CREATE USER username IDENTIFIED BY password;
GRANT CONNECT, RESOURCE, CREATE SESSION TO username;
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name TO username;
```
这将创建一个名为"username"的用户,其密码为"password",并授予它连接、资源和创建会话的权限。您还需要授权用户对特定表执行SELECT、INSERT、UPDATE和DELETE操作。
3. 授予用户执行SELECT的权限:
```
GRANT SELECT ANY TABLE TO username;
```
这将允许用户查询任何表而无需在查询中指定模式名。
4. 撤销用户的ALTER表权限:
```
REVOKE ALTER ANY TABLE FROM username;
```
这将撤销用户对任何表进行ALTER的权限。
现在,用户将能够不带模式名直接查询表,并且只能执行SELECT、INSERT、UPDATE和DELETE操作,而不能执行ALTER操作。
oracle创建一个账户,可以授权访问特定的表,实现数据插入
在Oracle数据库中,为了给用户创建账户并授予他们访问特定表的权限以便进行数据插入,你可以按照以下步骤操作:
1. **登录到Oracle SQL*Plus**:
首先,你需要以DBA角色登录到Oracle SQL*Plus,例如:
```sql
sqlplus / as sysdba
```
2. **创建新用户**:
使用 `CREATE USER`命令创建新的用户,例如为用户Alice创建密码为`password123`的账户:
```sql
CREATE USER alice IDENTIFIED BY password123;
```
3. **启用口令递归和资源限制** (可选):
如果需要,可以启用递归口令和资源限制,以防暴力破解:
```sql
ALTER USER alice PROFILE DEFAULTidentified_profile;
```
其中,`DEFAULTidentified_profile`是一个预定义的Profile名,如果未设置,可能需要自定义。
4. **授予权限**:
使用 `GRANT`语句授予用户对特定表的INSERT权限,例如对名为`my_table`的表:
```sql
GRANT INSERT ON my_schema.my_table TO alice;
```
这里的`my_schema`是你希望用户拥有权限的模式名称。
5. **保存更改**:
完成上述步骤后,记得用`EXIT`退出SQL*Plus,并关闭连接。
阅读全文