首頁>Club>
10
回覆列表
  • 1 # wangxian702

    public不是角色,你可以理解為所有資料庫使用者的集合。

    如果某個許可權賦於了public,那麼所以資料庫的使用者都可以有這個許可權(當然有些使用者可能連connect的許可權都可以沒有)。

    比如把一個物件t1給所有使用者有select 許可權

    grant select on user1.t1 to public;

    create public synonym t1 for t1;

    那麼所有的public使用者都可以訪問該表t1

    再比如說

    grant dba to public;

    那麼所有的使用者都有dba許可權了

    看下面的例子

    SQL> grant dba to public;

    授權成功。

    SQL> create user hh identified by hh123 default tablespace users;

    使用者已建立

    SQL> conn hh/hh123

    已連線。

    SQL> create table t1 (a int);

    表已建立。

    SQL> conn /as sysdba

    已連線。

    SQL> revoke dba from public;

    撤銷成功。

    SQL> conn hh/hh123

    ERROR:

    ORA-01045: user FANG lacks CREATE SESSION privilege; logon denied

    該例中先給所有使用者授予了DBA的許可權,因此建立的hh使用者具有DBA許可權,可以登入;之後把所有使用者的DBA許可權撤銷,hh使用者就不能再登入了。

  • 中秋節和大豐收的關聯?
  • 50平方低壓鋁芯線最大載流量是多少?