পোস্টগ্রিএসকিউএল 8.4 এ আমি কীভাবে pgcrypto ইনস্টল করব?


23

আমি উবুন্টু সার্ভার 10.10 ব্যবহার করছি এবং পোস্টগ্রের এসকিউএল 8.4 ব্যবহার করে ইনস্টল করেছি apt-get install postgresql। আমি অন্তর্নির্মিত sha1()ফাংশনটি ব্যবহার করতে চাই , তবে মনে হয় আমাকে pgcryptoপ্রথমে ইনস্টল করতে হবে । তবে আমি এটি ইনস্টল করতে জানি না।

pgcryptoআমি এটি ব্যবহার করে ইনস্টল করার চেষ্টা করেছি এমন কিছু নেই এবং আমার সিস্টেমে apt-get install pgcryptoশুরু হওয়া কোনও ফাইল খুঁজে পাই না pgcrypto(আমি চেষ্টা করেছি find / -name "pgcrypto*")।

আমি কীভাবে pgcrypto ইনস্টল করব যাতে আমি digest('word-to-hash','sha1')আমার ডাটাবেস অনুসন্ধানগুলিতে ফাংশনটি ব্যবহার করতে পারি?


আপডেট: আমি অন্য উবুন্টু মেশিনে pgcrypto ইনস্টল করার জন্য লড়াই করছি। প্যাকেজটি ইনস্টল করার পরে sudo apt-get install postgresql-contrib-8.4কীভাবে আমি এটি আমার বর্তমান পোস্টগ্রিজ এসকিউএল ডাটাবেসে ইনস্টল করব?


হাই @ জোনাস, আমি নিশ্চিত নই যে আপনি পিজিক্রিপ্টো ইনস্টল করতে সমস্যা করছেন বা আপনার ডিবি ইনস্টলের সাথে এটির কাজ করতে সমস্যা হচ্ছে কিনা issues মনে হচ্ছে আপনার একটি রেপো সমস্যা আছে। এই পথে এই ফাইলটি বিদ্যমান রয়েছে যাচাই করুন /usr/local/pgsql/share/contrib/pgcrypto.sqlএবং আমাদের জানান।
jcolebrand

@ জকোলেব্রান্ড: না আমার কোনও /usr/local/pgsqlডিরেক্টরি নেই। আমার কাছে কেবল *.sqlফাইল রয়েছে যেখানে /usr/share/postgresql/8.4/ক্রিপ্টো সম্পর্কিত নয়।
জোনাস

উত্তর:


17

পিজির নতুন সংস্করণের জন্য, ডাস্টিন কির্কল্যান্ডের নীচের উত্তরটি দেখুন

এটি পোস্টগ্রিসের জন্য একটি বাহ্যিক মডিউল। postgresql-contrib-8.4অ্যাপের মাধ্যমে আপনার (বা আপনার পিজি সংস্করণ) প্যাকেজটি ইনস্টল করা উচিত :

apt-get install postgresql-contrib-8.4

তারপরে আপনি /usr/share/postgresqlফোল্ডারের কোথাও স্ক্যালি ইনস্টল ফাইলটি খুঁজে পাবেন এবং আপনাকে 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

আমি যখন দৌড়ান sudo apt-get install postgres-contribআমি পাইE: Unable to locate package postgres-contrib
জোনাস

আমি গুগল করেছিলাম এবং এখন এটি ব্যবহার করে ইনস্টল করেছি sudo apt-get install postgresql-contrib-8.4এবং তারপর \i <path-to-pgcrypto>ব্যবহার করে চালাব psql
জোনাস

এটি করার উপায় এটি। আমি প্যাকেজটির সংস্করণে নোটটি অন্তর্ভুক্ত করার জন্য উত্তরটি সামান্য আপডেট করেছি
ড্রোকলসোসোস

1
আহ, আদেশটি ছিল\i /usr/share/postgresql/8.4/contrib/pgcypto.sql
জোনাস

9
পোস্টগ্র্যাস্কল 9.1 এর অধীনে আপনি কমান্ড লাইনে টাইপ করুন: এক্সটেনশন এক্সটেনশান তৈরি করুন pgcrypto
নাবিক

19

PostgreSQL 9.1+

মনে রাখবেন যে আমি উবুন্টু ১২.০৪-তে কাজ করছি, যা পোস্টগ্রেস্কেল ৯.১ ব্যবহার করে।

সেখানে আমার দরকার ছিল:

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

আমি এই উত্তরটি সত্যিই পছন্দ করি, যদিও আপনার 9.1+ এর জন্য একটি প্রশ্নের স্ব-জবাব দেওয়া উচিত (যখন এই বৈশিষ্ট্যটি যুক্ত করা হয়েছিল) যেমন ওপি স্পষ্টভাবে 8.4 এর জন্য জিজ্ঞাসা করেছিল এবং তার সংস্করণ সমর্থন করে না CREATE EXTENSION (যা অন্য উত্তরটি কঠোরভাবে সঠিকভাবে বলে দেয়
ইভান ক্যারল

0

সর্বশেষতম সংস্করণের জন্য, 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=> 

যদি ক্ষেত্রে, ব্যবহারকারীর কোনও এক্সটেনশান তৈরি করার অনুমতি না থাকে তবে পোস্টগ্রিস (ডিফল্ট) ব্যবহারকারী হিসাবে লগইন করে সুপারসুমারের অনুমতি দিন এবং আবার চেষ্টা করুন।

$ 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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.