首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用户已被拒绝select to table,但可以通过同义词访问表

这个问题涉及到数据库权限管理和同义词的概念。

数据库权限管理是指对数据库中的对象(如表、视图、存储过程等)进行访问控制的过程。在某些情况下,数据库管理员可能会限制某个用户对特定表的select操作权限,这意味着该用户无法直接通过select语句访问该表。

然而,通过使用同义词,用户仍然可以间接地访问被拒绝的表。同义词是数据库中的一个对象,它与另一个对象(如表)建立了关联关系。通过同义词,用户可以使用select语句访问同义词,而同义词又指向被拒绝的表,从而实现对表的间接访问。

同义词的使用可以提供一定的灵活性和安全性。它可以隐藏底层表的细节,使用户只能访问被授权的对象。同时,通过同义词,可以对表进行重命名,使其更符合业务需求或命名规范。

在腾讯云数据库产品中,可以使用腾讯云云数据库MySQL、云数据库MariaDB、云数据库SQL Server等来管理数据库权限和创建同义词。具体操作和使用方法可以参考以下链接:

  1. 腾讯云云数据库MySQL权限管理:https://cloud.tencent.com/document/product/236/17506
  2. 腾讯云云数据库MariaDB权限管理:https://cloud.tencent.com/document/product/1003/30440
  3. 腾讯云云数据库SQL Server权限管理:https://cloud.tencent.com/document/product/238/2024

通过合理配置数据库权限和使用同义词,可以实现对用户的访问控制和数据安全的保护。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SQL基础--> 序列(SEQUENCE)、同义词(SYNONYM)

--查看权限已被成功授予 SQL> select grantee,owner,table_name,grantor,privilege from user_tab_privs; GRANTEE OWNER...可以为、视图、存储过程、函数或另一同义词等对象创建同义词 方便访问其它用户的对象,隐藏了对象的身份 缩短对象名字的长度 1.创建同义词的权限 CREATE ANY SYNONYM CREATE...--robinson帐户访问同义词DEPARTMENT SQL> CONN robinson/lion; --注意此处robinson必须对scott.dept具有select权限,否则访问DEPARTMENT...--对于创建的公共同义词没有出现在user_synonyms视图中 SQL> SELECT synonym_name,table_owner,table_name FROM user_synonyms...--scott再次查看同义词视图中有一条记录,则该记录为私有同义词 SQL> SELECT synonym_name,table_owner,table_name FROM user_synonyms

1.3K20

同名的同义词和视图解惑

针对系统动态性能视图,数据库启动时,Oracle动态创建了x,在此基础之上,创建gv和v视图,Oracle创建了gv_和v_视图,然后创建了gv和v的公共同义词,而真正的v视图访问的限制是通过软件机制实现的...因此,用户访问的v对象,不是视图,而是指向v_视图的同义词,而v_视图才是基于真正的v视图(基于x创建的)创建的。这才能达到通过v_视图将v P.S.... -> vbisal(视图) -> v 但实际执行vbisal得到的是vbisal(视图),不是vbisal(同义词),因此,针对普通用户自定义的视图,不能通过v_视图将v P.S. ...eygle的书中介绍了Oracle对于对象名的解析顺序, (1) Oracle首先查看在发出命令的用户模式中是否存在或视图。 (2) 如果或视图不存在,Oracle会看私有同义词是否存在。...我们知道,同义词分为public和private,public同义词属于PUBLIC组,每个用户都可以访问,private同义词属于对象所有者,只有其显式授权后其他用户才可访问

98530
  • 【DB笔试面试514】在Oracle中,同义词的定义及其作用是什么?有关同义词需要注意些什么?

    创建同义词的语法如下所示: CREATE OR REPLACE [PUBLIC ] SYNONYM 同义词名称 FOR 用户名.名称; 以下示例的作用是将EMP定义为SCOTT.EMP的同义词。...如果存在公共同义词和私有同义词同名的情况,那么在访问同义词时,访问的是私有同义词所指向的对象。 ② 不能创建和当前用户下的名相同的私有同义词,但是可以创建和当前用户下的名相同的公共同义词。...synonym with same name as object LHR@ora11g > create public synonym s_b for s_b; Synonym created. ③ 不能访问与当前用户下的名相同的公共同义词...通过访问同义词就相当于访问其他SCHEMA对象的,但是,当创建的同义词和其他对象重名的时候,有可能在查询时却指向了另一个同名的对象,导致无法访问到正确的数据。...LHR@ora11g > create table s_b as select * from dual; Table created.

    85710

    同名的同义词和视图解惑

    针对系统动态性能视图,数据库启动时,Oracle动态创建了x$,在此基础之上,创建gv$和v$视图,Oracle创建了gv_$和v_$视图,然后创建了gv$和v$的公共同义词,而真正的v$视图访问的限制是通过软件机制实现的...因此,用户访问的v$对象,不是视图,而是指向v_$视图的同义词,而v_$视图才是基于真正的v$视图(基于x$创建的)创建的。这才能达到通过v_$视图将v$视图和普通用户隔离。 P.S....-> vbisal(视图) -> v 但实际执行v$bisal得到的是v$bisal(视图),不是v$bisal(同义词),因此,针对普通用户自定义的视图,不能通过v_$视图将v$视图和普通用户隔离。...eygle的书中介绍了Oracle对于对象名的解析顺序, (1) Oracle首先查看在发出命令的用户模式中是否存在或视图。 (2) 如果或视图不存在,Oracle会看私有同义词是否存在。...我们知道,同义词分为public和private,public同义词属于PUBLIC组,每个用户都可以访问,private同义词属于对象所有者,只有其显式授权后其他用户才可访问

    1K20

    Oracle创建用户并给用户授权查询指定或视图的权限

    V_DNPACKAGE  FOR  DNINMSV31.V_DNPACKAGE; CREATE SYNONYM V_DNPORT  FOR  DNINMSV31.V_DNPORT; 第三方的系统直接通过这个同义词就可以访问用户...第三方系统登录后,只能看到其同义词,其他的都不会访问得到。...: 我们有这样一个需求:在数据库中建立两个用户用户A 用于创建一些视图,直接访问自己数据库中一个模式下的,以及通过数据库链路访问其他数据库中的;另一个用户B 能访问到这个用户A 中的视图,并且只能访问视图...ryd_interface_src.INVEST_CLOCK_views; create synonym  INVEST_log_views for  ryd_interface_src.INVEST_log_views; 第三方的系统直接通过这个同义词就可以访问用户...、创建用户、授权、授权对象的访问以及查看权限 1.创建临时空间 Oracle临时空间主要用来做查询和存放一些缓冲区数据。

    7.9K20

    Oracle数据库学习笔记(五 —— 函数、视图、索引、同义词

    注意: 查询视图没有什么限制,插入/更新/删除视图的操作会受到一定的限制;所有针对视图的操作都会影响到视图的基;为了防止用户通过视图间接修改基的数据,可以将视图创建为只读视图(带上with read...它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。...2)Oracle私有同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。...4.3 同义词的创建与删除 -- 对 scott 用户和其他用户赋予访问其他用户的权限 grant select any table to scott(用户名) -- 1....-- 不同的用户通过同义词进行查询 select * from emp select * from myemp -- 删除同义词 drop synonym emp; drop public synonym

    92110

    --public与非public同义词

    [现象]: Sys账户给bisal账户的t_emp创建public同义词,bisal用户可以访问t_emp_syn,但scott账户无法查询,select ... t_emp_syn提示或视图不存在...SQL> select * from t_emp_syn; select * from t_emp_syn               * ERROR at line 1: ORA-00942: table... or view does not exist [原因]: Scott没有bisal.t_emp访问权限,因此提示或视图不存在。...,一个用户A若需要访问另一个用户B建立的同义词,则需要有用户B该(也就是基)的访问权限。...若是普通同义词,DBA用户可以访问任何用户创建的非public同义词,但不同的普通用户之间,除非授予基访问权限,否则不能随意访问其它用户的非public同义词,这也是public存在的用途。

    95570

    oracle 权限一览

    ALTER ANY TABLE 、BACKUP ANY TA B LE 、DROP ANY TABLESELECT ANY TABLE 、INSERT ANY TABLE 、UPDATE ANY TABLE...在任何模式中创建快照(用户还必须具有CREATE ANY TABLE特权) ALTER SNAPSHOT 改变任何模式中的任何快照 DROP ANY SNAPSHOT 删除任何模式中的任何快照 同义词...(假如被授权者有CREATE ANY TABLE 特权并在 另一个用户模式中创建了一张,那么拥有者必须在那个空间上有空间定额。...视图或列进行注释 SELECT ANY TABLE 对任何模式中的任何、视图或快照进行查询 INSERT ANY TABLE 把行插入到任何模式中的任何或视图中 UPDATE ANY TABLE 修改任何模式中的任何或视图中的行...假如被取消的话,被授权者的模式对象仍然保留,但是进一步的空间分配被拒绝,除非这一分配是具体的空间定额允许的。此系统特权仅可以授予用户,而不授予角色。

    1.3K20

    错过血亏!一文搞懂Oracle锁相关视图及相关操作

    *ERROR at line 1:ORA-00942: table or view does not exist hr用户无权访问v$mystat,所以换个方法,使用下面的命令得到hr用户当前的sid...rownum=1 *ERROR at line 1:ORA-00942: table or view does not exist 提示访问或者视图不存在,当sys用户给...hr用户授权后 grant select on v_$mystat to hr; hr用户就可以访问了,大家注意到上面两个语句中执行的对象并不一样,要访问的是v$mystat,而授权的是v_$mystat...hr访问的v$mystat是一个同义词,sys不能给同义词授权,只能授权给固定的或视图,同义词在Oracle中可以理解为一个对象的别名,有私有和共用之分,每个用户都可以给自己的对象创建自己的同义词,这样创建的同义词只能自己使用...33X$KSUMYSTA 4294951106 TABLE 35 这是固定,不用再继续找了,一般用户使用的V$MYSTAT是一个共用同义词

    1.7K10

    Oracle事务和对象详解

    2、我们建立好了序列自然需要将序列应用到我们创建的table)中。可以通过nextval、currval伪列来访问该序列的值。...那么我们在查询这个的时候就不用担心暴露的位置,提供了一定的安全性 3)提供对数据库的公共访问,可以通过给远程连接建立公有同义词给其他的用户查看。...4)以及为分布式数据库的远程对象提供位置透明性,我们给数据库链接(将其看做是一个对象)建立同义词,使用户可以无阻碍的查看数据,这时候对于用户而言,位置就是透明的。...,可以通过数据库链接查询远程、执行远程程序。...2、数据库链接分类 private:属于创建该链接的用户,也只有该用户可以使用 public:属于public,允许本地数据库中所有拥有数据库访问权限的用户使用 global:全集类型,网络中的数据库用户均可使用

    1.3K20

    【DB笔试面试515】在Oracle中,为何SYSTEM用户可以将V$SESSION的查询权限赋权给其他用户而SYS用户却不可以

    4294951258 VIEW 65537 V$SESSION 4294950919 VIEW 65537 SYS@ora11g > 通过以上查询可以看到,V$...SESSION属于公共同义词,它来源于SYS.V_$SESSION私有视图,而该视图又来源于系统底层SYS.V$SESSION,而系统底层SYS.V$SESSION又来源于系统底层SYS.GV$SESSION...Oracle选择访问对象的顺序原则是先SCHEMA后PUBLIC。所以,对于SYS用户而言,他查询V$SESSION视图其实是查询的系统底层SYS.V$SESSION。...对于系统底层,是不能直接做赋权操作的。所以,SYS用户在将该视图赋权给其他用户的时候就会报错。...而对于SYSTEM用户而言,他查询V$SESSION视图其实是查询的PUBLIC这个特殊用户下的公共同义词,而公共同义词是可以做赋权操作的。

    1.2K20

    current_schema参数的用途

    用户A包含TBL,如果用户A将TBL的访问权限给用户B(grant select any table to B),则在用户B中要想引用用户A的,不使用同义词,则需要用select * from...有点扯远了,上面说到用户B要引用用户A的,不想使用“用户A.”的形式,其实除了使用同义词外,还可以使用current_schema来改变当前用户使用的schema。...用户A授权用户B: grant select any table to B; 2....查看dba_tables: select * from dba_tables; ERROR at line 1: ORA-00942: table or view does not exist 说明用户...总结: 其实之所以需要current_schema,主要是申请一些只读账户时,通常是用grant授予用户访问权限,但访问时如果没有同义词则需要是用“schema(/user).”的方式,每次新建都创建同义词的方法也行

    1K30

    Oracle 数据字典和数据字典视图

    数据字典的特点 每个Oracle数据库的中枢 描述数据库和它的对象 包含只读的和视图 存储在SYSTEM空间中 拥有者是SYS用户 由Oracle服务器自己维护 用SELECT访问 数据字典内容...基础和数据字典视图: 数据字典包括两个部分: 基础 存储数据库的描述 CREATE DATABASE命令创建(sql.bsq) 数据字典视图 用于简化基础的信息 通过PUBLIC同义词访问...因此,很少人直接访问这些基。取而代之的是数据字典视图。...数据字典视图分为类,它们以前辍来区分,前辍分别为:USER、ALL、DBA USER_* 用户所拥有的对象信息 ALL_* 用户访问的对象信息 DBA_* 整个数据库中的对象信息 创建数据字典视图...这些动态性能视图都是以V_$开头,属主是sys oracle为每个动态性能视图都创建了同义词同义词将中间的“_”去掉了,形成以v$开头 在同义词中查看v$session SQL> SELECT

    99830

    Oracle 序列 视图 索引 同义词

    sys 用户下观察查询的情况,可以发现此时的查询采用的是“TABLE ACCESS FULL” (全扫描,逐行扫描)。...当一个列上设置了主键约束或者是唯一约束的时候会自动的创建索引; 2.用户可以自己通过语法在指定的列上创建索引。...同义词 果要想创建属于自己的同义词,则必须由管理员完成,而创建的语法如下: CREATE [PUBLIC] SYNONYM 同义词的名称 FOR 用户名.名称; 范例:将 scott.emp 定义一个...,下面就可以直接通过 myemp 来访问 scott.emp 数据了。...因为此时的同义词只能够在 sys 下使用,它并不是一个公共的同义词,所以要想让所有用户访问,则必须创建公共同义词

    41510

    Oracle总结【视图、索引、事务、用户权限、批量操作】

    在上一篇博文已经说了,Oracle将/用户都看成是对象…那么我们怎么在scott用户访问hr用户下的呢???...其实,我们只要在访问的时候,指定具体的用户.数据库就行了,但是呢,还要看看该用户有没有权限查询别的用户的数据,于是就需要赋予权限了… 声明:scott或hr叫用户名/方案名/空间名 scott...也提供了同义词【类似于别名】给我们进行使用 同义词的作用 (1)缩短对象名字的长度 (2)方便访问其它用户的对象 创建与salgrade对应的同义词,create synonym 同义词 for 名...; 使用同义词操作salgrade select * from s; 删除同义词 drop synonym ev5; 删除同义词,会影响基吗?...,类似于新华字典的目录 (2)运用在中某个/些字段上,但存储时,独立于之外 为什么要用索引 为什么要用索引 (1)通过指针加速Oracle服务器的查询速度 (2)通过rowid快速定位数据的方法,减少磁盘

    2K41

    Oracle-动态性能视图解读

    X$为 SYS 用户所拥有,并且是只读的。 不能进行 DML(更新,插入,删除)。 对数据库来说至关重要,所以 Oracle 不允许 SYSDBA 之外的用户直接访问, 显示授权不被允许。 ?...查询必须是sys用户,dba权限的用户没有权限查询。 ? ---- GV$ 和 V$ 同义词 V$ 视图 动态性能视图由前缀 V_标识。这些视图的公用同义词具有前缀 V。...通过 vfixed_table 查询 V视图信息: DBA用户即可。...所以,实际上通常我们访问的 V视图,其实是指向 V_视图的同义词。 而V_视图是基于 X建立的。...大多数动态性能视图只能由特权用户和DBA用户访问。 1、V$FIXED_TABLE 该动态性能视图用于列出所有可用的动态性能视图和动态性能

    2.5K20

    关于Oracle序列、索引、同义词

    简单记录下Oracle序列、索引、同义词的相关知识。...一、常见的数据库对象 二、序列 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 ①、创建序列 CREATE SEQUENCE...用户不用在查询语句中指定使用哪个索引 在删除一个时,所有基于该的索引会自动被删除 通过指针加速 Oracle 服务器的查询速度 通过快速定位数据的方法,减少磁盘 I/O ①、创建索引 自动创建: 在定义...ON table (column[, column]...); 在 EMPLOYEES的列 LAST_NAME 上创建索引 CREATE INDEX emp_last_name_idx ON employees...= 'EMPLOYEES'; 四、同义词-synonym CREATE SYNONYM e FOR employees; select * from e; 为视图DEPT_SUM_VU 创建同义词 CREATE

    52920

    为何SYSTEM用户可以将V$SESSION的查询权限赋权给其他用户而SYS用户却不可以?

    4294951258 VIEW       65537 V$SESSION                      4294950919 VIEW       65537 SYS@ora11g > 通过以上查询可以看到...,V$SESSION属于公共同义词,它来源于SYS.V_$SESSION私有视图,而该视图又来源于系统底层SYS.VSESSION,而系统底层SYS.VSESSION又来源于系统底层SYS.GV...Oracle选择访问对象的顺序原则是先SCHEMA后PUBLIC。...所以,对于SYS用户而言,他查询VSESSION视图其实是查询的系统底层SYS.VSESSION。对于系统底层,是不能直接做赋权操作的。所以,SYS用户在将该视图赋权给其他用户的时候就会报错。...而对于SYSTEM用户而言,他查询V & 说明: 有关Oracle同义词的更多内容介绍可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2154285

    2.4K10

    Oracle数据库常用操作命令

    自身决定 Oracle数据库管理系统在访问数据时使用以下三种方式: n 全扫描 n 通过ROWID(行地址,快速访问的一行) n 使用索引 当没有索引或者不选择使用索引时就用全扫描的方式 2.索引的分类...Select_statement:select语句 WITH CHECK OPTION :此选项指定只能插入或更新视图可以访问的行。...数据库链接名 CONNECT TO user名 IDENTIFIED BY 口令 USING ‘Oracle链接串’; 2.同义词的分类 (1)私有同义词 私有同义词只能被当前模式的用户访问,私有同义词名称不可与当前模式的对象名称相同...synonym_name:要创建同义词的名称 object_name:指定要为之创建同义词的对象的名称 (2)共有同义词 公有同义词被所有的数据库访问。...分区对用户是透明的,及应用程序可以不知道已被分区,在更新和查询分区时当做普通来操作,但oracle优化程序知道已被分区。

    3.1K10
    领券