PostgreSQL簡(jiǎn)介
PostgreSQL是一種特性非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS),是以加州大學(xué)計(jì)算機(jī)系開(kāi)發(fā)的POSTGRES,4.2版本為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。POSTGRES的許多領(lǐng)先概念只是在比較遲的時(shí)候才出現(xiàn)在商業(yè)網(wǎng)站數(shù)據(jù)庫(kù)中。PostgreSQL支持大部分的SQL標(biāo)準(zhǔn)并且提供了很多其他現(xiàn)代特性,如復(fù)雜查詢(xún)、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制等。同樣,PostgreSQL也可以用許多方法擴(kuò)展,例如通過(guò)增加新的數(shù)據(jù)類(lèi)型、函數(shù)、操作符、聚集函數(shù)、索引方法、過(guò)程語(yǔ)言等。另外,因?yàn)樵S可證的靈活,任何人都可以以任何目的免費(fèi)使用、修改和分發(fā)PostgreSQL。
主要特點(diǎn)
PostgreSQL 的 主要優(yōu)點(diǎn)如下:
1)維護(hù)者是PostgreSQL Global Development Group,首次發(fā)布于1989年6月。
2)操作系統(tǒng)支持WINDOWS、Linux、UNIX、MAC OS X、BSD。
3)從基本功能上來(lái)看,支持ACID、關(guān)聯(lián)完整性、數(shù)據(jù)庫(kù)事務(wù)、Unicode多國(guó)語(yǔ)言。
4)表和視圖方面,PostgreSQL支持臨時(shí)表,而物化視圖,可以使用PL/pgSQL、PL/Perl、PL/Python或其他過(guò)程語(yǔ)言的存儲(chǔ)過(guò)程和觸發(fā)器模擬。
5)索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用來(lái)加速全文檢索),從8.3版本開(kāi)始支持位圖索引。
6)其他對(duì)象上,支持?jǐn)?shù)據(jù)域,支持存儲(chǔ)過(guò)程、觸發(fā)器、函數(shù)、外部調(diào)用、游標(biāo)7)數(shù)據(jù)表分區(qū)方面,支持4種分區(qū),即范圍、哈希、混合、列表。
8)從事務(wù)的支持度上看,對(duì)事務(wù)的支持與MySQL相比,經(jīng)歷了更為徹底的測(cè)試。
9)My ISAM表處理方式方面,MySQL對(duì)于無(wú)事務(wù)的MyISAM表,采用表鎖定,1個(gè)長(zhǎng)時(shí)間運(yùn)行的查詢(xún)很可能會(huì)阻礙對(duì)表的更新,而PostgreSQL不存在這樣的問(wèn)題。
10)從存儲(chǔ)過(guò)程上看,PostgreSQL支持存儲(chǔ)過(guò)程。因?yàn)榇鎯?chǔ)過(guò)程的存在也避免了在網(wǎng)絡(luò)上大量原始的SQL語(yǔ)句的傳輸,這樣的優(yōu)勢(shì)是顯而易見(jiàn)的。
11)用戶定義函數(shù)的擴(kuò)展方面,PostgreSQL可以更方便地使用UDF(用戶定義函數(shù))進(jìn)行擴(kuò)展。
PostgreSQL 的 應(yīng)用劣勢(shì)如下:
1)最新版本和歷史版本不分離存儲(chǔ),導(dǎo)致清理老舊版本時(shí)需要做更多的掃描,代價(jià)比較大但一般的數(shù)據(jù)庫(kù)都有高峰期,如果合理安排VACUUM,這也不是很大的問(wèn)題,而且在PostgreSQL9.0中VACUUM進(jìn)一步被加強(qiáng)了。
2)在PostgreSQL中,由于索引完全沒(méi)有版本信息,不能實(shí)現(xiàn)Coverage index scan,即查詢(xún)只掃描索引,不能直接從索引中返回所需的屬性,還需要訪問(wèn)表,而Oracle與Innodb則可以。
下面通過(guò)本文給大家介紹使用pg數(shù)據(jù)庫(kù)可以通過(guò)如下方法查詢(xún)用戶的系統(tǒng)權(quán)限和對(duì)象權(quán)限。
1、查看某用戶的系統(tǒng)權(quán)限
SELECT * FROM pg_roles WHERE rolname='postgres';
2、查看某用戶的表權(quán)限
select * from information_schema.table_privileges where grantee='postgres';
3、查看某用戶的usage權(quán)限
select * from information_schema.usage_privileges where grantee='postgres';
4、查看某用戶在存儲(chǔ)過(guò)程函數(shù)的執(zhí)行權(quán)限
select * from information_schema.routine_privileges where grantee='postgres';
5、查看某用戶在某表的列上的權(quán)限
select * from information_schema.column_privileges where grantee='postgres';
6、查看當(dāng)前用戶能夠訪問(wèn)的數(shù)據(jù)類(lèi)型
select * from information_schema.data_type_privileges ;
7、查看用戶自定義類(lèi)型上授予的USAGE權(quán)限
select * from information_schema.udt_privileges where grantee='postgres';
到此這篇關(guān)于查看postgresql數(shù)據(jù)庫(kù)用戶系統(tǒng)權(quán)限、對(duì)象權(quán)限的方法的文章就介紹到這了,更多相關(guān)postgresql數(shù)據(jù)庫(kù)用戶系統(tǒng)權(quán)限、對(duì)象權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 基于PostgreSQL 權(quán)限解讀
- PostgreSQL 默認(rèn)權(quán)限查看方式
- Postgresql 賦予用戶權(quán)限和撤銷(xiāo)權(quán)限的實(shí)例
- PostgreSQL教程(十二):角色和權(quán)限管理介紹
- 用一整天的時(shí)間安裝postgreSQL NTFS權(quán)限
- Postgresql 數(shù)據(jù)庫(kù)權(quán)限功能的使用總結(jié)