sql english ত্রুটি: পোস্টগ্রেস ব্যবহার করে শহর_id_seq অনুক্রমের জন্য অনুমতি দেওয়া হয়েছে



ইংরেজি অনুবাদ কর (3)

@ টম_ গেরকেন, @ অ্যাপিক_ফিল এবং @ কুপসন বিদ্যমান বিবরণের সাথে কাজ করার অনুমতি দেওয়ার জন্য তাদের বিবৃতির সাথে বেশ সঠিক। যাইহোক, ব্যবহারকারী ভবিষ্যতে তৈরি ক্রম অ্যাক্সেস অধিকার পাবেন না। এটি করার জন্য, আপনাকে GRANT বিবৃতিটি ALTERFUL PRIVILEGES বিবৃতি সহ একত্রিত করতে হবে, যেমন:

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO www;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
    GRANT USAGE, SELECT ON SEQUENCES TO www;

এটি শুধুমাত্র PostgreSQL 9+ এ কাজ করে।

এটি বিদ্যমান ডিফল্ট সুবিধাগুলির সাথে যুক্ত হবে, ওভাররাইট করবে না, তাই সে ক্ষেত্রে এটি বেশ নিরাপদ।

আমি postgres এ নতুন (এবং সব ডাটাবেস তথ্য সিস্টেম এ সব)। আমি আমার ডাটাবেসের উপর SQL স্ক্রিপ্ট নিম্নলিখিত রান:

create table cities (
id serial primary key,
name text not null
);

create table reports (
id serial primary key,
cityid integer not null references cities(id),
reportdate date not null,
reporttext text not null
);

create user www with password 'www';

grant select on cities to www;
grant insert on cities to www;
grant delete on cities to www;

grant select on reports to www;
grant insert on reports to www;
grant delete on reports to www;

grant select on cities_id_seq to www;
grant insert on cities_id_seq to www;
grant delete on cities_id_seq to www;

grant select on reports_id_seq to www;
grant insert on reports_id_seq to www;
grant delete on reports_id_seq to www;

যখন, ব্যবহারকারী হিসাবে www, চেষ্টা করছেন:

insert into cities (name) values ('London');

আমি নিম্নলিখিত ত্রুটি পেতে:

ERROR: permission denied for sequence cities_id_seq

আমি যে সিরিয়াল টাইপ সঙ্গে মিথ্যা সমস্যা। এজন্য আমি * _id_seq এর জন্য www নির্বাচন, সন্নিবেশ এবং ডিলিট অনুমোদন করি। এখনো এই আমার সমস্যা ঠিক করা হয় না। আমি কি অনুপস্থিত?


Answer #1

যেহেতু @ ফিলের অনেকগুলি আপভোট পেয়েছে যেটি লক্ষ্য নাও হতে পারে, আমি তার সিনট্যাক্স ব্যবহার করছি এমন একটি উত্তর যোগ করার জন্য যা ব্যবহারকারীকে স্কিমাতে সমস্ত ক্রমগুলির জন্য অনুমতি দেবে (আপনার স্কিমাটি ডিফল্ট 'সর্বজনীন' )

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public to www;

Answer #2

PostgreSQL 8.2 থেকে আপনি ব্যবহার করতে হবে:

GRANT USAGE, SELECT ON SEQUENCE cities_id_seq TO www;

অনুদান ব্যবহার করুন - ক্রম অনুসারে, এই বিশেষাধিকারটি ক্রভাল এবং পরবর্তী ফাংশনগুলির ব্যবহারের অনুমতি দেয়।

এছাড়াও মন্তব্যগুলিতে @ অ্যাপিক_ফিল দ্বারা নির্দেশিত হিসাবে আপনি স্কিমের সমস্ত ক্রমগুলির অনুমতি দিয়ে অনুমতি দিতে পারেন:

GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO www;




auto-increment