安全加固:如何彻底撤销PUBLIC隐式特权

在数据库安全加固中,已经撤销了PUBLIC以下权限:

1)REVOKE BINDADD ON DATABASE FROMPUBLIC

2)REVOKE CREATETAB ON DATABASE FROMPUBLIC

3)REVOKE CONNECT ON DATABASE FROMPUBLIC

4)REVOKE IMPLICIT_SCHEMA ON DATABASEFROM PUBLIC


在第三方用软件第二次安全扫描时,提示仍存在PUBLIC隐式特权。

请问如何彻底撤销隐式特权?



参与3

1同行回答

zsj2002zsj2002数据库管理员澳門大豐銀行
回复 1# zbhero 1.創建數據庫的時候使用restrictive參數這樣就不會有public權限產生2.已經創建的數據庫取消public權限,因爲有public權限的項目非常多我一般是這樣revoke bindadd,connect,createtab,IMPLICIT_SCHEMA on database from PUBLICrevoke select on table SYSCA...显示全部
回复 1# zbhero


1.創建數據庫的時候使用restrictive參數
這樣就不會有public權限產生

2.已經創建的數據庫取消public權限,因爲有public權限的項目非常多
我一般是這樣
revoke bindadd,connect,createtab,IMPLICIT_SCHEMA on database from PUBLIC
revoke select on table SYSCAT.COLAUTH from PUBLIC
revoke select on table SYSCAT.DBAUTH from PUBLIC
revoke select on table SYSCAT.INDEXAUTH from PUBLIC
revoke select on table SYSCAT.PACKAGEAUTH from PUBLIC
revoke select on table SYSCAT.ROUTINEAUTH from PUBLIC
revoke select on table SYSCAT.SCHEMAAUTH from PUBLIC
revoke select on table SYSCAT.SEQUENCEAUTH from PUBLIC
revoke select on table SYSCAT.TABAUTH from PUBLIC
revoke select on table SYSCAT.TBSPACEAUTH from PUBLIC
去掉一些敏感的表的public的權限
然後寫一個shell
分別遍歷所有的schema,tablespace,table,然後取消他們的public權限。
取消createin對於schema的public權限
取消use對於tablespaces的public權限
取消all對於所有user table的public權限。

如果還需要進一步去除的話,還需要取消sysproc下面的系統自帶函數,以及nullid等一些程序的execute權限。

安全和易用性是相對的,如果是絕對的安全的話那麽系統可能就沒法用了,自己找一個平衡點就好了。
我覺得全部把public取消的話可能將來會有一些麻煩。比如你想運行一個substr()都沒權限。

我可能説的還不夠全面,等其他大神來補充。收起
银行 · 2015-09-01
浏览881

提问者

zbhero
数据库管理员汉名

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-09-01
  • 关注会员:2 人
  • 问题浏览:2148
  • 最近回答:2015-09-01
  • X社区推广