Oracle授予用户权限的一个实例
- 格式:doc
- 大小:17.00 KB
- 文档页数:2
Oracle给⽤户授权truncatetable的实现⽅案1,对其它⽤户下的表执⾏trundate table操作开发说在⽤dwetl下执⾏调⽤shop⽤户下的表的时候提⽰没有权限操作,google了查了下,发现oracle账户没法直接赋予对某个表的truncate权限,那要怎么来实现呢?在shop⽤户下⾯,准备测试数据SQL> create table Z_TRUNCATE_T(ID number);Table created.SQL> insert into Z_TRUNCATE_T select 1 from dual;1 row created.SQL> commit;Commit complete.SQL> select * from Z_TRUNCATE_T;ID----------1SQL>2,⽐较粗鲁不安全的做法通常赋予truncate的常规做法,是直接赋值drop any table给⼀个⽤户SQL> grant drop any table to dwetl;Grant succeeded.SQL>SQL> grant select,insert,delete,update on Z_TRUNCATE_T to dwetl;Grant succeeded.SQL>⼲完活,需要赶紧马上收回权限因为drop any table权限是在太⼤了,⼀不⼩⼼就会造成误删除,到时候哭都来不及啊SQL> revoke drop any table from dwetl;Revoke succeeded.SQL> revoke select,insert,delete,update on shop.PLAN6_TEMPLET_NODE_EDIT from dwetl;Revoke succeeded.SQL>3,⽐较安全的做法建⽴⼀个存储过程p_truncate,在存储过来⾥⾯执⾏truncate table Z_TRUNCATE_T;然后赋予另外⼀个⽤户dwetl对这个存储过程的执⾏权限。
oracle的grant用法GRANT是一个Oracle数据库的SQL命令,用于向用户或角色授予特定的系统权限或对象权限。
语法如下:GRANT privilege_name [, privilege_name]...TO user_name [, user_name]...[WITH ADMIN OPTION][ROLE role_name [, role_name]...];其中,- privilege_name 表示要授予的权限,可以是一个或多个权限,例如SELECT、INSERT、UPDATE、DELETE等。
- user_name 表示要授予权限的用户,可以是一个或多个用户,例如SCOTT、HR等。
- WITH ADMIN OPTION表示授予权限的用户能够将这些权限再授予给其他用户。
- ROLE role_name表示要授予的角色,可以是一个或多个角色。
以下是一些示例:1. 授予用户SCOTT对表EMP的SELECT权限:GRANT SELECT ON EMP TO SCOTT;2. 授予用户HR对表DEPT的SELECT和INSERT权限,并允许其将这些权限再授予其他用户:GRANT SELECT, INSERT ON DEPT TO HR WITH ADMINOPTION;3. 授予角色MANAGER对表EMP的SELECT权限,并授予用户SCOTT该角色:GRANT SELECT ON EMP TO MANAGER;GRANT MANAGER TO SCOTT;4. 授予用户SYSDBA管理员权限:GRANT SYSDBA TO SYS;5. 授予用户DBA所有系统权限:GRANT ALL PRIVILEGES TO DBA;以上只是GRANT命令的一些常见用法示例,实际应用中可以根据具体需求灵活使用。
oracle授予用户实例Oracle是一款广泛应用于企业级数据库管理系统的软件,而用户实例则是Oracle数据库中的一个重要概念。
本文将探讨Oracle如何授予用户实例的过程和相关注意事项。
在Oracle中,用户实例是指一个用户与数据库建立的一个会话。
用户实例具有独立的系统资源和权限,可以进行数据库操作和数据查询。
为了保证数据的安全性和权限的控制,Oracle提供了授予用户实例的功能。
我们需要了解如何创建用户实例。
在Oracle中,创建用户实例需要使用CREATE USER语句。
这条语句可以指定用户的名称、密码和权限等信息。
创建用户实例的过程可以通过以下步骤完成:第一步,登录到Oracle数据库。
可以使用sqlplus或者SQL Developer等工具进行登录。
第二步,使用sysdba权限登录到数据库。
只有具有sysdba权限的用户才能够创建用户实例。
第三步,执行CREATE USER语句,指定用户的名称、密码和权限等信息。
例如,可以执行以下语句创建一个名为user1的用户实例:CREATE USER user1 IDENTIFIED BY password;其中,user1是用户的名称,password是用户的密码。
可以根据实际需求,指定用户实例的其他属性,如临时表空间、默认表空间等。
第四步,授予用户实例相应的权限。
在Oracle中,可以使用GRANT 语句授予用户实例具有的权限。
例如,可以使用以下语句将SELECT 权限授予user1用户:GRANT SELECT ON table_name TO user1;其中,table_name是需要授予权限的表的名称。
可以根据实际需求,授予用户实例其他的权限,如INSERT、UPDATE、DELETE等。
在授予用户实例权限的过程中,需要注意以下几点:授予的权限应该与用户实例的需求相匹配。
不要授予过多的权限,以免导致意外操作或者安全风险。
需要注意权限的控制粒度。
oracle 的grant role to role例子全文共四篇示例,供读者参考第一篇示例:Oracle数据库中的权限管理是非常重要的,通过合理的授权管理可以确保数据库的安全性和稳定性。
在Oracle中,可以使用grant语句来给用户或角色授予权限。
除了给用户授予权限外,还可以给角色授予权限,并且可以使用grant role to role语句将权限从一个角色授予给另一个角色。
接下来我们将介绍一些关于grant role to role的例子。
让我们创建两个角色,分别为role1和role2,然后给role1授予SELECT权限:```sqlCREATE ROLE role1;CREATE ROLE role2;现在,我们可以使用grant role to role语句将role1的SELECT 权限授予给role2:这样,role2就拥有了和role1相同的SELECT权限。
通过这种方式,可以将权限从一个角色传递给另一个角色,实现权限的继承和管理。
这在管理大型数据库系统中非常有用,可以减少权限管理的工作量,提高系统的安全性和可维护性。
可以利用role继承的特性来简化权限管理工作。
我们可以创建一个专门用于管理财务数据的角色finance_role,然后给它授予所有访问财务数据的权限。
然后再创建一个财务系统管理员的角色finance_admin_role,将finance_role授予给finance_admin_role,这样finance_admin_role就具有了所有访问财务数据的权限,而且可以管理其他财务系统管理员的权限。
下面是具体的实现步骤:-- 给finance_role授予访问财务数据的权限GRANT SELECT, INSERT, UPDATE, DELETE ON finance_table TO finance_role;-- 将finance_role授予给finance_admin_roleGRANT finance_role TO finance_admin_role;```通过这种方式,可以将权限细化到不同的角色中,将数据库对象的访问权限和管理权限分离开来,提高了系统的安全性和可管理性。
oracle赋dba权限如何给Oracle数据库用户赋予DBA权限Oracle数据库的DBA(Database Administrator)权限是指最高级别的数据库管理权限,具有该权限的用户可以对数据库进行全面的管理和控制。
在某些情况下,给予用户DBA权限是必要的,例如需要进行数据库维护、性能优化或者进行一些故障排除等任务。
下面将详细介绍如何给Oracle数据库用户赋予DBA权限的步骤。
1. 连接到Oracle数据库首先,使用管理员账号连接到Oracle数据库。
这个管理员账号通常是sys 或system用户,拥有sysdba权限。
连接到Oracle数据库的命令可以使用SQL*Plus工具或者命令行界面。
例如,在Windows系统上可以使用以下命令连接到数据库:sqlplus / as sysdba2. 创建新的数据库用户接下来,需要创建一个新的数据库用户来赋予DBA权限。
使用以下SQL 语句创建一个新用户,例如,创建一个名为new_user的用户:SQL> CREATE USER new_user IDENTIFIED BY password;在这里,new_user是新用户的用户名,password是新用户的密码。
3. 授权DBA权限接下来,使用以下SQL命令将DBA角色授予新用户:SQL> GRANT DBA TO new_user;这个命令将DBA角色授予新创建的用户,使其具有DBA权限。
4. 验证DBA权限为了验证新用户是否已成功获得DBA权限,可以先注销当前的数据库连接,然后使用新用户重新连接到数据库。
使用以下命令重新连接到数据库:sqlplus new_user/password as sysdba连接成功后,可以使用以下命令查询用户的权限:SQL> SELECT * FROM session_privs;这个查询将会显示新用户所具有的权限列表,其中应该包含DBA权限。
oracle赋权方法Oracle是一种关系型数据库管理系统,它提供了一种灵活且安全的赋权机制,可以控制用户对数据库对象的访问权限。
本文将介绍Oracle中常用的赋权方法。
1. 创建用户和角色:在Oracle中,可以使用CREATE USER语句创建用户,并使用CREATE ROLE语句创建角色。
用户可以拥有角色,而角色可以拥有权限。
创建用户和角色的语法如下:```CREATE USER username IDENTIFIED BY password; CREATE ROLE role;```2. 授权角色权限:可以使用GRANT语句将权限授予角色。
例如,将SELECT权限授予角色read_role:```GRANT SELECT ON table_name TO read_role;```3. 授权用户角色:可以使用GRANT语句将角色授予用户。
例如,将read_role角色授予用户username:```GRANT read_role TO username;```4. 授予用户直接权限:可以使用GRANT语句将权限直接授予用户。
例如,将SELECT权限直接授予用户username:```GRANT SELECT ON table_name TO username;```5. 撤销角色权限:可以使用REVOKE语句撤销角色的权限。
例如,撤销read_role角色的SELECT权限:```REVOKE SELECT ON table_name FROM read_role;```6. 撤销用户角色:可以使用REVOKE语句撤销用户的角色。
例如,撤销用户username的read_role角色:```REVOKE read_role FROM username;```7. 撤销用户直接权限:可以使用REVOKE语句撤销用户的直接权限。
例如,撤销用户username的SELECT权限:```REVOKE SELECT ON table_name FROM username;```8. 查看用户权限:可以使用SELECT语句查询用户拥有的权限。
oracle分配用户权限语句嘿,你知道吗,在 Oracle 里要给用户分配权限,那可真是一门学问呢!就好像你要给一个小伙伴分配任务一样,得搞清楚该给啥权限,不能多也不能少。
比如说,你想让某个用户能查看一些特定的数据,那就得用合适的语句来给他这个权限。
“GRANT SELECT ON table_name TOuser_name;”,看,这就是一条简单的分配读权限的语句啦。
就好像你给朋友一把钥匙,让他能打开特定的那扇门去看看里面的东西。
但要是想让用户能修改数据呢,那就得用不同的语句啦,“GRANT INSERT, UPDATE ON table_name TO user_name;”。
这就好比你不仅给了朋友钥匙,还告诉他可以在里面动点小手脚,改改东西呢。
哎呀,这可真不是随随便便就能搞对的呀!要是不小心给错了权限,那不就乱套了嘛!就像你本想让朋友帮忙打扫下客厅,结果不小心让他能随便进卧室翻东西了,那可不行呀!而且,分配权限的时候还得考虑周全,不能只看眼前。
比如说,以后这个用户的职责会不会变呀,到时候权限是不是又得重新调整呢。
这就跟你给朋友安排任务一样,一开始可能只让他做一件事,后来发现他还能做更多,或者原来的任务不需要他做了,那权限不就得跟着变嘛。
在 Oracle 中分配用户权限语句真的是非常重要的呀!这可关系到整个数据库的安全和正常运行呢。
要是权限分配得不合理,那可能会带来很多麻烦,甚至会导致数据泄露或者错误。
所以呀,我们可得认真对待,就像对待我们最珍视的宝贝一样,小心翼翼地去设置好每一个权限。
总之,Oracle 分配用户权限语句这事儿,可真是既有趣又充满挑战呢!我们得好好研究,才能把它玩转,让数据库乖乖听话呀!。
oracle system用户实例什么是Oracle System用户实例?Oracle System用户实例是Oracle数据库实例中的一个特殊用户。
它是数据库管理员(DBA)使用的默认用户。
Oracle System用户实例具有最高的权限和特权,可以执行所有数据库管理任务,包括创建和删除用户、控制数据库安全性、备份和恢复数据、监视和管理数据库性能等。
同时,用户实例还提供了一系列管理工具和API,使得管理人员可以方便地进行数据库管理和企业级应用程序开发。
如何创建Oracle System用户实例?首先,需要安装Oracle数据库软件并创建数据库。
安装过程需要管理员权限,并且会要求提供一个管理员用户名和密码。
一般情况下,管理员用户名会默认为'SYS',密码由用户安装时指定。
安装完成后,可以使用管理员用户名和密码登录到数据库中。
登录后,可以将管理员用户(SYS)的身份更改为系统用户(SYSTEM),这样就可以使用SYSTEM用户进行后续管理任务。
要创建其他用户实例,可以使用SQL语句或Oracle提供的管理工具。
使用SQL语句的方法如下:1. 使用管理员用户登录到数据库中。
sqlplus sys/<password>@<database> as sysdba2. 创建用户实例并设置密码。
CREATE USER <username> IDENTIFIED BY <password>;3. 授予用户实例权限。
GRANT CONNECT, RESOURCE, DBA TO <username>;4. 退出管理员用户。
EXIT有了管理员用户实例,可以进行各种数据库管理任务。
在Oracle中,还有很多其他的用户实例和角色可供选择,每个用户实例和角色都有不同的权限和特权。
如何管理Oracle System用户实例?管理Oracle System用户实例需要掌握一定的数据库管理技巧和知识。
oracle数据库grant用法GRANT语句用于授予用户或用户组在数据库对象上的权限。
GRANT的语法如下:GRANT privileges ON object TO user;其中,privileges表示要授予的权限,可以是单个权限或多个权限的组合,object表示要授予权限的对象,可以是表、视图、存储过程等数据库对象,user表示要授予权限的用户或用户组。
以下是一些常见的GRANT用法:1. 授予用户SELECT权限:GRANT SELECT ON table_name TO user;2. 授予用户INSERT、UPDATE权限:GRANT INSERT, UPDATE ON table_name TO user;3. 授予用户所有权限:GRANT ALL PRIVILEGES ON table_name TO user;4. 授予用户在所有表上的所有权限:GRANT ALL PRIVILEGES ON *.* TO user;5. 授予用户在指定数据库上的所有权限:GRANT ALL PRIVILEGES ON database_name.* TO user;6. 授予用户在指定表上的SELECT权限,并可以将权限赋予其他用户:GRANT SELECT ON table_name TO user WITH GRANT OPTION;7. 授予用户在指定表上的SELECT权限,并限制该权限只能在特定时间段内使用:GRANT SELECT ON table_name TO user WITH GRANT OPTION FOR INTERVAL '10' HOUR;8. 授予用户在指定表上的SELECT权限,并限制该权限只能在特定时间范围内使用:GRANT SELECT ON table_name TO user WITH GRANT OPTION FROM TO '2022-01-01' TO '2022-12-31';注意:为了执行GRANT语句,你需要具有足够的权限,通常需要具有DBA或SYSDBA角色。
oracle如何创建⽤户并赋予权限本⽂将从⽤户创建讲起,特别讲述Oracle授予⽤户权限的⼀个实例,希望对⼤家了解Oracle授予⽤户权限有所帮助。
这两天在测数据库同步软件的时候,需要在Oracle⾥创建⼀个⽤户名和密码均为SYSDATA的⽤户,找了找资料,创建成功,现将Oracle中⽤户的创建和授予命令摘录下来:1、Linux 下Oracle的启动以Oracle⾝份登录启动lsnrctl start 登录sqplus /nolog连接数据库connect/assysdba 启动数据库startup关闭数据库shutdown immediate2、在数据中创建⽤户名启动数据库后创建⽤户名连接超级⽤户connect system/admin system 系统⽤户名字 admin 密码创建⽤户名字create user SYSDATA identified by admin ⽤户名:SYSDATA 密码:admin 可以写Default tablespace user//指定存储对象使⽤的默认空间表默认是system Temporary tablespace temp; //保存临时对象所使⽤的空间表默认是system 上⾯的俩⾏,可以写空间表为user临时为temp;不写就默认3、添加⽤户的权限Grant是Oracle授予⽤户权限的如:1.Grant create session to SYSDATA;//授予SYSDATA连接数据的权限系统权限如下:系统特权允许执⾏的操作Create session 连接数据库Create sequence 创建序列Create synonym 创建同名对象Create table 创建表Create any table 创建任何模式的表Drop table 删除表Create procedure 创建存储过程Execute any procedure 执⾏任何模式的存储过程Create user 创建⽤户Create view 创建视图Drop user 删除⽤户Drop any table 删除任何模式的表4、向⽤户授予系统特权1.Grant execute any procedure toSYSDATA with admin option此句意思为为sha⽤户创建系统特权并且可以⽤SYSDATA为别的⽤户授予权限连接SYSDATA⽤户connect SYSDATA/admin 可以创建别的⽤户5、查看⽤户权限进⼊SYSDATA⽤户connect SYSDATA/admin1.Select * from user_sys_privs;可以查看到⼀个列表,列代表⽤户名权限是否可以给别的⽤户附加权限(N、Y)⾏代表权限都有那些6、撤销⽤户授予的权限必须连接connect system/admin撤销权限revoke是系统撤销权限的关键词1.Revoke execute any procedure from SYSDATA;7、更改⽤户密码进⼊SYSDATA⽤户connect SYSDATA/admin Password输⼊旧密码输⼊新密码俩边OK 或者⽤alter user SYSDATA identified by xinmima8、删除⽤户1. Connect system/admin2.Drop user SYSDATA;9、为⽤户授予⾓⾊1. Grant dba to SYSDATA;2.Grant connect to SYSDATA;Linux下的plsql创建⽤户1. create user SYSDATA identified by admin2. Default tablespace user3. Temporary tablespace temp;4. Granr unlimited tablespace to SYSDATA;//权限5.Grant dba to SYSDATA;//⾓⾊。
oracle 控制权限的语句
在Oracle中,可以使用以下语句来控制权限:
1. GRANT:授予用户或角色特定的权限。
例如:GRANT SELECT, INSERT ON table_name TO
user_name;
GRANT role_name TO user_name;
2. REVOKE:撤销用户或角色的权限。
例如:REVOKE SELECT, INSERT ON table_name FROM user_name;
REVOKE role_name FROM user_name;
3. CREATE USER:创建新用户。
例如:CREATE USER user_name IDENTIFIED BY password;
4. ALTER USER:修改用户属性。
例如:ALTER USER user_name PASSWORD EXPIRE;
ALTER USER user_name DEFAULT TABLESPACE
new_tablespace;
5. CREATE ROLE:创建新角色。
例如:CREATE ROLE role_name;
6. GRANT ROLE:授予角色给用户。
例如:GRANT role_name TO user_name;
7. SET ROLE:启用角色。
例如:SET ROLE role_name;
8. DROP USER:删除用户。
例如:DROP USER user_name;
这些语句可以帮助管理员在Oracle数据库中控制用户和角色的权限。
请注意,执行这些语句需要具有相应的特权。
Oracle数据库GRANT用法1. 什么是GRANTGRANT是Oracle数据库中的一条授权命令,用于授予用户或角色对数据库对象的访问权限。
通过GRANT命令,可以将特定的权限授予用户或角色,使其能够执行特定的数据库操作。
2. GRANT命令语法GRANT命令的基本语法如下:GRANT privilege [, privilege...]ON objectTO {user | role | PUBLIC}[WITH GRANT OPTION];•privilege:表示要授予的权限,可以是系统权限或对象权限。
系统权限包括CREATE SESSION、ALTER SESSION、CREATE TABLESPACE等,对象权限包括SELECT、INSERT、UPDATE、DELETE等。
•object:表示要授予权限的对象,可以是表、视图、序列、存储过程等。
•user:表示要授予权限的用户。
•role:表示要授予权限的角色。
•PUBLIC:表示要授予权限给所有用户。
•WITH GRANT OPTION:表示授予的权限可以再次被授予给其他用户或角色。
3. 授权示例以下是一些常见的授权示例:3.1 授予SELECT权限给用户GRANT SELECT ON employees TO alice;上述语句将SELECT权限授予用户alice,使其能够查询employees表。
3.2 授予INSERT、UPDATE权限给角色GRANT INSERT, UPDATE ON orders TO sales_role;上述语句将INSERT和UPDATE权限授予角色sales_role,使其能够向orders表插入新记录并更新已有记录。
3.3 授予EXECUTE权限给用户GRANT EXECUTE ON procedure_name TO bob;上述语句将EXECUTE权限授予用户bob,使其能够执行名为procedure_name的存储过程。
Oracle新建用户、角色,授权,建表空间oracle数据库的权限系统分为系统权限与对象权限。
系统权限( database systemprivilege )可以让用户执行特定的命令集。
例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。
对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。
例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。
oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。
用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。
一个用户也可以直接给其他用户授权。
一、创建用户oracle内部有两个建好的用户:system和sys。
用户可直接登录到system用户以创建其他用户,因为system具有创建别的用户的权限。
在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
例如:Sql代码create user user01 identified by u01;该命令还可以用来设置其他权限,详细情况参见自学资料。
要改变一个口令,可以使用alter user命令:<span style="white-space: pre;"> alter user user01 identified by usr01;</span><span style="white-space: pre;"><span style="white-space: normal;"> </span> </span>现在user01的口令已由“u01”改为“usr01”。
oracle,创建⽤户,授予⽤户各种权限;ORA-01939错误;ORA-01950错误;。
...3个默认的⽤户:sys orcl [as sysdba]system orclscott tiger创建⽤户:create user gis /*⽤户名*/ identified by gis /*密码*/ ;PRIVILEGE:权限系统权限:grant(revoke) create session to(from) gis;grant(revoke) create table to(from) gis;grant(revoke) unlimited tablespace to(from) gis;grant create seesion to public; #将权限授予所有⽤户。
select * from user_sys_privs; 查看当前⽤户的系统权限。
对象权限:grant(revoke) select on mytable to(from) gis;grant(revoke) all on mytable to(from) gis;select * from user_tab_privs; #查看当前⽤户的表的对象权限:对象权限可以控制到列(只能插⼊和更新控制到列):select * from user_col_privs; #查看当前⽤户的列的对象权限:1) grant update(name) on mytable to sagittys; #在gis⽤户上将mytable表的name列更新权限给sagittys⽤户update gis.mytable set name='laowang' where id=1;commit;2) grant insert(id) on mytable to sagittys;insert into gis.mytable(id) values(7);GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE----- ------------------------------ ------------------------------ --GIS SAGITTYS SA SAGITTYS FLASHBACK NO NOGIS SAGITTYS SA SAGITTYS DEBUG NO NOGIS SAGITTYS SA SAGITTYS QUERY REWRITE NO NOGIS SAGITTYS SA SAGITTYS ON COMMIT REFRESH NO NOGIS SAGITTYS SA SAGITTYS REFERENCES NO NOGIS SAGITTYS SA SAGITTYS UPDATE #更新 NO NOGIS SAGITTYS SA SAGITTYS SELECT #查询 NO NOGIS SAGITTYS SA SAGITTYS INSERT #插⼊ NO NOGIS SAGITTYS SA SAGITTYS INDEX #索引 NO NOGIS SAGITTYS SA SAGITTYS DELETE #删除 NO NOGIS SAGITTYS SA SAGITTYS ALTER #修改 NO NO(在CMD中默认宽度到头了则不会规则的显⽰,此时将宽度设为400,set linesize 400,就ok了)语⾔分类:1、 DLL,数据定义语⾔CREATE,CREATE TABLE abc(a varchar(10),b char(10));ALTER,ALTER TABLE abc ADD c NUMBER; 加⼀个c的字段,数据符为NUMBER。
oracle创建⽤户赋予权限,删除权限--删除⽤户及及⽤户下的所有数据drop user xxx cascade;--创建⽤户赋予密码create user xxx identified by1234;--赋予权限grant dba to xxx;--删除权限revoke dba from xxx;--赋予⽤户登录数据库的权限grant create session to xxx;--授予⽤户操作表的权限grant unlimited tablespace to xxx;grant create tablespace to xxx;grant alter tablespace to xxx;grant drop tablespace to xxx;grant manage tablespace to xxx;--撤销⽤户操作表空间的权限revoke unlimited tablespace from xxx;revoke create tablespace from xxx;revoke alter tablespace from xxx;revoke drop tablespace from xxx;revoke manage tablespace from xxx;grant create session to zhangsan;--授予zhangsan⽤户创建session的权限,即登陆权限grant unlimited session to zhangsan;--授予zhangsan⽤户使⽤表空间的权限grant create table to zhangsan;--授予创建表的权限grant drop table to zhangsan;--授予删除表的权限grant insert table to zhangsan;--插⼊表的权限grant update table to zhangsan;--修改表的权限grant select on tablename to zhangsan;--授予zhangsan⽤户查看指定表的权限grant drop on tablename to zhangsan--授予删除表的权限grant insert on tablename to zhangsan;--授予插⼊的权限grant update on tablename to zhangsan;--授予修改表的权限select*from user_sys_privs;--查看当前⽤户所有权限select*from user_tab_privs;--查看所⽤⽤户对表的权限select*from user_sys_privs;--查看当前⽤户所有权限select*from user_tab_privs;--查看所⽤⽤户对表的权限。
oracle中新建⽤户和赋予权限1.新建个⽤户create user xxxxx(⽤户名) identified by "密码"alert user ⽤户名 identified by “新密码” --修改⽤户密码因为新建的⽤户和默认的⽤户是锁住的,没有权限。
所以新建⽤户后要给⽤户赋予权限grant dba to ⽤户名 --给⽤户赋予所有权限,connect是赋予连接数据库的权限,resource 是赋予⽤户只可以创建实体但是没有创建数据结构的权限。
grant create session to ⽤户名 --这个是给⽤户赋予登录的权限。
grant create table to ⽤户名 --给⽤户赋予表操作的权限grant unlimited tablespace to ⽤户名 --给⽤户赋予表空间操作的权限grant select any table to ⽤户名 --给该⽤户赋予访问任务表的权限同理可以赋予update 和delete 的grant select on srapp_hz_zhpt_yl.jggl to srapp_hz_zhpt_ylcs --这⾥是给srapp_hz_zhpt_ylcs⽤户赋予selectsrapp_hz_zhpt_yl⽤户的jggl表的查询的权限。
同理可以有alter,drop,insert等权限。
-----------------------------注意这个语句在没有访问另⼀个⽤户的权限情况下这个语句要在另⼀个⽤户登录情况下执⾏,这样才能⽣效。
-------------撤销权限基本语法同grant,关键字为revoke 如: revoke create tabel to ⽤户名就是取消这个⽤户的对表操作的权限。
-----------查看权限select * from user_sys_privs;//查看当前⽤户所有权限select * from user_tab_privs;//查看所⽤⽤户对表的权限-----------⾓⾊⾓⾊即权限的集合,可以把⼀个⾓⾊授予给⽤户,管理⾓⾊的权限⽐较简单,可以在⼀个⽤户下创建多个⾓⾊,⽤户只需要添加⾓⾊就可以管理权限了,便于⽤户管理权限。
Oracle创建⽤户并给⽤户授权查询指定表或视图的权限⽤DNINMSV31账户登录数据库进⾏如下操作:CREATE USER NORTHBOUND IDENTIFIED BY NORTHBOUNDDEFAULT TABLESPACE "TBS_DNINMSV31"TEMPORARY TABLESPACE "TEMP2"QUOTA UNLIMITED ON "TBS_DNINMSV31";GRANT "CONNECT" TO NORTHBOUND;ALTER USER NORTHBOUND DEFAULT ROLE NONE;GRANT CREATE SESSION TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNDEVICE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNSUBNE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPACKAGE" TO NORTHBOUND;GRANT SELECT ON "DNINMSV31"."V_DNPORT" TO NORTHBOUND;【注】:在⽤NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。
例如:select*from DNINMSV31.V_DNDEVICE; --可以正常执⾏select*from DNINMSV31.TB_DEVICE where rownum<5; --执⾏的时候会报表或视图不存在创建同义词供对⽅公司系统访问:CREATE SYNONYM V_DNDEVICE FOR DNINMSV31.V_DNDEVICE;CREATE SYNONYM V_DNSUBNE FOR DNINMSV31.V_DNSUBNE;CREATE SYNONYM V_DNPACKAGE FOR DNINMSV31.V_DNPACKAGE;CREATE SYNONYM V_DNPORT FOR DNINMSV31.V_DNPORT;第三⽅的系统直接通过这个同义词就可以访问到⽤户DNINMSV31中的视图。
本文将从用户创建讲起,特别讲述Oracle授予用户权限的一个实例,希望对大家了解Oracle授予用户权限有所帮助。
这两天在测数据库同步软件的时候,需要在Oracle里创建一个用户名和密码均为SYSDA TA的用户,找了找资料,创建成功,现将Oracle中用户的创建和授予命令摘录下来:
1、Linux 下Oracle的启动
以Oracle身份登录
启动lsnrctl start
登录sqplus /nolog
连接数据库connect/assysdba
启动数据库startup
关闭数据库shutdown immediate
2、在数据中创建用户名
启动数据库后创建用户名
连接超级用户connect system/admin system 系统用户名字admin 密码
创建用户名字create user SYSDA TA identified by admin 用户名:SYSDA TA密码:admin 可以写Default tablespace user//指定存储对象使用的默认空间表默认是system
Temporary tablespace temp; //保存临时对象所使用的空间表默认是system
上面的俩行,可以写空间表为user临时为temp;不写就默认
3、添加用户的权限
Grant是Oracle授予用户权限的如:
Grant create session to SYSDA TA;//授予SYSDA TA连接数据的权限
系统权限如下:
系统特权允许执行的操作
Create session连接数据库
Create sequence创建序列
Create synonym创建同名对象
Create table创建表
Create any table创建任何模式的表
Drop table删除表
Create procedure创建存储过程
Execute any procedure执行任何模式的存储过程
Create user创建用户
Create view创建视图
Drop user删除用户
Drop any table删除任何模式的表
4、向用户授予系统特权
Grant execute any procedure toSYSDA TA with admin option
此句意思为为sha用户创建系统特权并且可以用SYSDA TA为别的用户授予权限
连接SYSDA TA用户connect SYSDA TA/admin
可以创建别的用户
5、查看用户权限
进入SYSDA TA用户connect SYSDA TA/admin
Select * from user_sys_privs;可以查看到一个列表,
列代表用户名权限是否可以给别的用户附加权限(N、Y)
行代表权限都有那些
6、撤销用户授予的权限
必须连接connect system/admin
撤销权限revoke是系统撤销权限的关键词
Revoke execute any procedure from SYSDA TA;
7、更改用户密码
进入SYSDA TA用户connect SYSDA TA/admin
Password输入旧密码输入新密码俩边OK
或者用alter user SYSDA TA identified by xinmima
8、删除用户
Connect system/admin Drop user SYSDA TA;
9、为用户授予角色
Grant dba to SYSDA TA; Grant connect to SYSDA TA;
Linux下的plsql创建用户
create user SYSDA TA identified by admin Default tablespace user Temporary tablespace temp; Granr unlimited tablespace to SYSDA TA;//权限Grant dba to SYSDA TA;//角色Grant connect to SYSDA TA;。