plsql授权
A. Oracle把视图查询权限给某用户的SQL是什么
oracle给某用户授权试图查询的SQL语句为:
SQL> grant select on v_$mystat to test1;
Grant succeeded.
这样 test1用户就拥有了 查询v$mystat视图的权限了
收回权限命令:
SQL>revoke select on v_$mystat from test1;
(1)plsql授权扩展阅读
oracle 的用户管理的常用命令介绍:
1、创建用户:create user 用户名 identified by 密码;
SQL> create user scw identified by 123;
2、修改其他用户密码 需要权限;
SQL> conn system/123;
已连接。
SQL> alter user scw identified by 123;
3、赋予用户连接数据库的权限:
SQL>grant create session to zhansgan;
4、查看当前用户所有表的表名:
SQL> select table_name from user_tables;
B. plsql用户授权是什么意思
plsql创建用户首先是要有权限,有权限下,创建用户的命令是
create user username identified by password default tablespace tablespacename
如果没有指定表空间default tablespace tablespacename,则会把这个用户添加到系统默认的表空间中;
授权:grant dba,resource,connect....(各种权限) to username;
添加一个用户基本的流程应该是这样:
创建一个该用户的表空间,当然也可以跟其他用户共用某个表空间
create tablesapce tablespacename datafile '指定一个目录/username.dbf' size 100m autoextend on next 100m mazsize 300m 这些指定的大小可以自定义
创建用户
create user username identified by password default tablespace tablespacename
授权
grant dba,resource,connect to username 需要具体哪些权限也可以自定义指定
码字不容易,望采纳!!
C. 如何在一个grant语句里授权多个库
GRANT 在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句。 语法 语句权限: GRANT { ALL | statement [ ,...n ] } TO security_account [ ,...n ] 对象权限: GRANT { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( column [ ,...n ] ) ] ON { table | view } | ON { table | view } [ ( column [ ,...n ] ) ] | ON { stored_procere | extended_procere } | ON { user_defined_function } } TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ] 参数 ALL 表示授予所有可用的权限。对于语句权限,只有 sysadmin 角色成员可以使用 ALL。对于对象权限,sysadmin 和 db_owner 角色成员和数据库对象所有者都可以使用 ALL。 statement 是被授予权限的语句。语句列表可以包括: CREATE DATABASE CREATE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE RULE CREATE TABLE CREATE VIEW BACKUP DATABASE BACKUP LOG n 一个占位符,表示此项可在逗号分隔的列表中重复。 TO 指定安全帐户列表。 security_account 是权限将应用的安全帐户。安全帐户可以是: Microsoft® SQL Server™ 用户。 SQL Server 角色。 Microsoft Windows NT® 用户。 Windows NT 组。 当权限被授予一个 SQL Server 用户或 Windows NT 用户帐户,指定的 security_account 是权限能影响到的唯一帐户。若权限被授予 SQL Server 角色或 Windows NT 组,权限可影响到当前数据库中该组或该角色成员的所有用户。若组或角色和它们的成员之间存在权限冲突,最严格的权限 (DENY) 优先起作用。security_account 必须在当前数据库中存在;不可将权限授予其它数据库中的用户、角色或组,除非已为该用户在当前数据库中创建或给予了访问权限。 两个特殊的安全帐户可用于 GRANT 语句。授予 public 角色的权限可应用于数据库中的所有用户。授予 guest 用户的权限可为所有在数据库中没有用户帐户的用户使用。 当授予某个 Windows NT 本地组或全局组权限时,请指定在其上定义该组的域名或计算机名,然后依次输入反斜线和组名。但是,若要授予访问 Windows NT 内置本地组的权限,请指定 BUILTIN 而不是域名或计算机名。 PRIVILEGES 是可以包含在符合 SQL-92 标准的语句中的可选关键字。 permission 是当前授予的对象权限。当在表、表值函数或视图上授予对象权限时,权限列表可以包括这些权限中的一个或多个:SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。列列表可以与 SELECT 和 UPDATE 权限一起提供。如果列列表未与 SELECT 和 UPDATE 权限一起提供,那么该权限应用于表、视图或表值函数中的所有列。 在存储过程上授予的对象权限只可以包括 EXECUTE。在标量值函数上授予的对象权限可以包括 EXECUTE 和 REFERENCES。 为在 SELECT 语句中访问某个列,该列上需要有 SELECT 权限。为使用 UPDATE 语句更新某个列,该列上需要有 UPDATE 权限。 为创建引用某个表的 FOREIGN KEY 约束,该表上需要有 REFERENCES 权限。 为使用引用某个对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW,该对象上需要有 REFERENCES 权限。 column 是当前数据库中授予权限的列名。 table 是当前数据库中授予权限的表名。 view 是当前数据库中被授予权限的视图名。 stored_procere 是当前数据库中授予权限的存储过程名。 extended_procere 是当前数据库中授予权限的扩展存储过程名。 user_defined_function 是当前数据库中授予权限的用户定义函数名。 WITH GRANT OPTION 表示给予了 security_account 将指定的对象权限授予其它安全帐户的能力。WITH GRANT OPTION 子句仅对对象权限有效。 AS {group | role} 指当前数据库中有执行 GRANT 语句权力的安全帐户的可选名。当对象上的权限被授予一个组或角色时使用 AS,对象权限需要进一步授予不是组或角色的成员的用户。因为只有用户(而不是组或角色)可执行 GRANT 语句,组或角色的特定成员授予组或角色权力之下的对象的权限。 注释 不允许有跨数据库权限;只能将当前数据库中的对象和语句的权限授予当前数据库中的用户。如果用户需要另一个数据库中的对象的权限,请在该数据库中创建用户帐户,或者授权用户帐户访问该数据库以及当前数据库。 说明 系统存储过程是例外,因为 EXECUTE 权限已经授予 public 角色,允许任何人去执行。但是在执行系统存储过程后,将检查用户的角色成员资格。如果此用户不是运行此存储过程所需要的适当的固定服务器或数据库角色的成员,则此存储过程不会继续执行。 REVOKE 语句可用于删除已授予的权限,DENY 语句可用于防止用户通过 GRANT 语句获得权限给他们的用户帐户。 授予权限删除所授予级别(用户、组或角色)上的已拒绝权限或已废除权限。在另一级别(诸如包含此用户的组或角色)上被拒绝的同一权限优先起作用。但是,虽然在另一级别上所废除的同一权限仍然适用,但它并不阻止用户访问该对象。 如果用户激活应用程序角色,对此用户通过该应用程序角色访问的任何对象,GRANT 的作用为空。因此,尽管一个用户可能被授予了对当前数据库中的指定对象的访问权限,但是如果此用户使用对此对象无访问权限的应用程序角色,则在应用程序角色激活期间,此用户也没有此对象的访问权限。 sp_helprotect 系统存储过程报告在数据库对象或用户上的权限。 权限 GRANT 权限依赖于所授予的语句权限和权限中涉及的对象。sysadmin 角色中的成员可在任何数据库中授予任何权限。对象所有者可为他们所拥有的对象授予权限。db_owner 或 db_securityadmin 角色的成员可授予其数据库中任何语句或对象上的任何权限。 需要权限的语句是那些在数据库中增加对象,或对数据库执行管理活动的语句。每条需要权限的语句都有一个特定的角色集,自动有权限执行此语句。例如,sysadmin、db_owner 和 db_ddladmin 角色的成员默认有CREATE TABLE 权限。sysadmin 和 db_owner 角色以及表的所有者默认有对表执行 SELECT 语句的权限。 有一些 Transact-SQL 语句不能被授予权限;执行这些语句要求有固定角色中的成员资格,此角色有默示执行特殊语句的权限。例如,若要执行 SHUTDOWN 语句,用户必须添加为 serveradmin 角色中的成员。 dbcreator、processadmin、securityadmin 和 serveradmin 固定服务器角色的成员仅有权执行以下 Transact-SQL 语句。 语句 dbcreator processadmin securityadmin serveradmin bulkadmin ALTER DATABASE X CREATE DATABASE X BULK INSERT X DBCC X (1) DENY X (2) GRANT X (2) KILL X RECONFIGURE X RESTORE X REVOKE X (2) SHUTDOWN X (1) 有关更多信息,请参见 DBCC 语句。 (2) 仅适用于 CREATE DATABASE 语句。 说明 diskadmin 和 setupadmin 固定服务器角色的成员没有权限执行任何 Transact-SQL 语句,他们只能执行特定的系统存储过程。但是,sysadmin 固定服务器角色的成员有权限执行所有的 Transact-SQL 语句。 下面的固定数据库角色的成员有权限执行指定的 Transact-SQL 语句。 语句 db_owner db_datareader db_datawriter db_ddladmin db_backupoperator db_securityadmin ALTER DATABASE X X ALTER FUNCTION X X ALTER PROCEDURE X X ALTER TABLE X (1) X ALTER TRIGGER X X ALTER VIEW X (1) X BACKUP X X CHECKPOINT X X CREATE DEFAULT X X CREATE FUNCTION X X CREATE INDEX X (1) X CREATE PROCEDURE X X CREATE RULE X X CREATE TABLE X X CREATE TRIGGER X (1) X CREATE VIEW X X DBCC X X (2) DELETE X (1) X DENY X X DENY on object X DROP X (1) X EXECUTE X (1) GRANT X X GRANT on object X (1) INSERT X (1) X READTEXT X (1) X REFERENCES X (1) X RESTORE X REVOKE X X REVOKE on object X (1) SELECT X (1) X SETUSER X TRUNCATE TABLE X (1) X UPDATE X (1) X UPDATE STATISTICS X (1) UPDATETEXT X (1) X WRITETEXT X (1) X (1) 权限也适用于对象所有者。 (2) 有关更多信息,请参见 DBCC 语句。 说明 db_accessadmin 固定数据库角色的成员没有执行任何 Transact-SQL 语句的权限,只可执行特定的系统存储过程。 不需要权限即可执行的 Transact-SQL 语句有(已自动授予 public): BEGIN TRANSACTION COMMIT TRANSACTION PRINT RAISERROR ROLLBACK TRANSACTION SAVE TRANSACTION SET 有关执行系统存储过程所需权限的更多信息,请参见相应的系统存储过程。 示例 A. 授予语句权限 下面的示例给用户 Mary 和 John 以及 Windows NT 组 Corporate\BobJ 授予多个语句权限。 GRANT CREATE DATABASE, CREATE TABLE TO Mary, John, [Corporate\BobJ] B. 在权限层次中授予对象权限 下例显示权限的优先顺序。首先,给 public 角色授予 SELECT 权限。然后,将特定的权限授予用户 Mary、John 和 Tom。于是这些用户就有了对 authors 表的所有权限。 USE pubs GO GRANT SELECT ON authors TO public GO GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom GO C. 给 SQL Server 角色授予权限 下面的示例将 CREATE TABLE 权限授予 Accounting 角色的所有成员。 GRANT CREATE TABLE TO Accounting D. 用 AS 选项授予权限 用户 Jean 拥有表 Plan_Data。Jean 将表 Plan_Data 的 SELECT 权限授予 Accounting 角色(指定 WITH GRANT OPTION 子句)。用户 Jill 是 Accounting 的成员,他要将表 Plan_Data 上的 SELECT 权限授予用户 Jack,Jack 不是 Accounting 的成员。 因为对表 Plan_Data 用 GRANT 语句授予其他用户 SELECT 权限的权限是授予 Accounting 角色而不是显式地授予 Jill,不能因为已授予 Accounting 角色中成员该权限,而使 Jill 能够授予表的权限。Jill 必须用 AS 子句来获得 Accounting 角色的授予权限。 /* User Jean */ GRANT SELECT ON Plan_Data TO Accounting WITH GRANT OPTION /* User Jill */ GRANT SELECT ON Plan_Data TO Jack AS Accounting
D. 赋予oracle数据库中某一用户表权限的问题
开通其中2张表的查询权限,方法如下:
grant select on bas_checkcycle to jdc;这个是整个语句。
语句分析:
grant select on bas_checkcycle to jdc;
这个颜色为执行语句。
这个颜色是数据表。
这个颜色是用户;就是需要权限的用户。
下面这个是查看,更新,删除,增加的权限都开启。
grant select,update,delete,insert on UserTagPool to [app_webservice];
grant select,update,delete,insert on UserTagPoolMap to [app_webservice];
(4)plsql授权扩展阅读
Oracle权限管理
权限分类:
系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。
系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
E. oracle建立数据库后 有很多的默认表在plsql中怎么设置不显示啊 还有就是怎么把这个新库授权给新建的用户
这些都是系统的视图,你用sys或system登录就能看得见.
创建用户 create user username identified by password;
授予连接角色 grant connect to username;
授予使用资源的角色 grant resource to username;
创建表空间 create tablespace tablespacename
datafile ‘/路径/名称' size 大小;
设置默认表空间 alter user username default tablespace tablespacename;
F. plsql怎么给用户创建用户权限
双击运行PLSQL Developer软件复,连接oracle数据库制服务器
在“对象”下,找到users,右击选择“新建”
在弹出的“创建用户”窗口中,输入新用户的名称、口令,默认表空间、临时表空间等
赋予新用户权限,赋予其角色权限:connect、resource,这样用户才能登录操作数据库
G. oracle中为什么以sys的身份在plsql中无法给其他用户授权,在命令窗口中又可以
在plsql中你应该使用命令窗口,不能使用sql窗口进行赋权,plsql是很强大的
H. oracle创建用户并分配访问指定视图的权限
首先创来建用户和授权不需要自commit,commit只在insert,update,delete时用。
假如有账户A和B,密码都为123
如果需要授权A访问B中视图的权限,需要先登录B通过账户B授权给A,代码如下
conn B/123
grant select on View to A;
这时A才能访问B中的视图,访问时需要在视图名前加上schema,如下
select * from B.view;
如果想直接通过视图名来访问可通过创建“同义词”的方式实现
希望能帮助到你
I. oracle 怎样查询某用户下的所有表的表名
如果是用该用户登录使用以下语句:
SELECT*
FROMUSER_TABLES;
如果是用其他用户(在dba权限下):
SELECT*
FROM ALL_TABLESWHEREOWNER='USER_NAME'
(9)plsql授权扩展阅读:
1、查询“c001”课程比“c002”课程成绩高的所有学生的学号;
select * from sc a
where a.cno='c001'
and exists(select * from sc b where b.cno='c002' and a.score>b.score
and a.sno = b.sno)
2、查询平均成绩大于60 分的同学的学号和平均成绩;
select sno,avg(score) from sc group by sno having avg(score)>60;
3、查询所有同学的学号、姓名、选课数、总成绩;
select a.*,s.sname from (select sno,sum(score),count(cno) from sc group by sno) a ,student s where a.sno=s.sno
4、查询姓“刘”的老师的个数;
select count(*) from teacher where tname like '刘%';