Ubuntu Server 10.10을 사용하고 있으며를 사용하여 PostgreSQL 8.4를 설치했습니다 apt-get install postgresql
. 내장 sha1()
기능 을 사용하고 싶지만 pgcrypto
먼저 설치해야 합니다. 그러나 나는 그것을 설치하는 방법을 모른다.
어떤이 pgcrypto
내가 사용하여 설치하려고하면 apt-get install pgcrypto
내가 모든 파일로 시작 찾을 수없는 pgcrypto
내 시스템에서 (나는 시도하지 find / -name "pgcrypto*"
).
digest('word-to-hash','sha1')
데이터베이스 쿼리에서 함수를 사용할 수 있도록 pgcrypto를 어떻게 설치 합니까?
업데이트 : 다른 우분투 컴퓨터에 pgcrypto를 설치하는 데 어려움을 겪고 있습니다. sudo apt-get install postgresql-contrib-8.4
현재 PostgreSQL 데이터베이스에 패키지를 설치하는 방법을 사용하여 패키지를 설치 한 후
답변
최신 버전의 PG는 Dustin Kirkland의 답변을 확인하십시오.
Postgres의 외부 모듈입니다. postgresql-contrib-8.4
apt를 통해 (또는 pg 버전) 패키지를 설치해야합니다 .
apt-get install postgresql-contrib-8.4
그런 다음 /usr/share/postgresql
폴더의 어딘가에 sql 설치 파일이 pgcryto.sql
있으며 데이터베이스 에서 실행해야 합니다.
psql -d <database> -f /usr/share/postgresql/8.4/contrib/pgcrypto.sql
또는,
$ cd /usr/share/postgresql/8.4/contrib
$ psql -d <database>
psql (8.4.8)
Type "help" for help.
database=# \i pgcrypto.sql
답변
PostgreSQL 9.1+
postgresql 9.1을 사용하는 Ubuntu 12.04에서 작업하고 있습니다.
거기서 나는 다음을 필요로했다.
sudo apt-get install postgresql-contrib
그리고 내 데이터베이스에서 :
postgres@ztrustee:~$ psql test
psql (9.1.3)
Type "help" for help.
test=# CREATE EXTENSION pgcrypto;
CREATE EXTENSION
이제 pgcrypto 기능인 gen_random_bytes ()를 사용할 수 있습니다.
test=# create table test (
id
text
not null
default encode( gen_random_bytes( 32 ), 'hex' )
primary key,
value
text
);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test_pkey" for table "test"
CREATE TABLE
test=# \d test
Table "public.test"
Column | Type | Modifiers
--------+------+------------------------------------------------------------
id | text | not null default encode(gen_random_bytes(32), 'hex'::text)
value | text |
Indexes:
"test_pkey" PRIMARY KEY, btree (id)
test=# insert into test (value) VALUES ('scoobydoo');
INSERT 0 1
test=# select * from test;
id | value
------------------------------------------------------------------+-----------
76dd5bd0120d3df797f932fbcb4f8aa5088e215ee2b920dddbff59c8595fbac7 | scoobydoo
답변
최신 버전의 경우 pgcrypto.sql로 끝나는 파일 경로가 없습니다.
필요한 사용자 아래에 확장자 pgcrypto를 작성하십시오.
$ psql -U <username> -d mydb
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help.
mydb=> CREATE EXTENSION pgcrypto;
CREATE EXTENSION
mydb=>
확장명을 만들 권한이없는 경우에는 postgres (기본) 사용자로 로그인하여 수퍼 유저 권한을 부여한 후 다시 시도하십시오.
$ psql --u postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help.
postgres=# ALTER USER <username> WITH SUPERUSER;
ALTER ROLE