ত্রুটি: পোস্টগ্রিস ব্যবহার করে ক্রম শহর_আইডি_সেকের জন্য অনুমতি অস্বীকার করা হয়েছে


201

পোস্টগ্র্রেসে আমি নতুন (এবং সব মিলিয়ে ডেটাবেস তথ্য সিস্টেমে)। আমি আমার ডাটাবেসে স্ক্যালি স্ক্রিপ্ট অনুসরণ করে দৌড়েছি:

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

আমি বুঝতে পারি যে সমস্যাটি সিরিয়াল টাইপের সাথে রয়েছে। এ কারণেই আমি * _আইডি_সেক এর জন্য www এ অধিকার নির্বাচন, সন্নিবেশ এবং মোছা মঞ্জুর করি। তবুও এটি আমার সমস্যার সমাধান করে না। আমি কী মিস করছি?


2
সিক্যুয়ালে সন্নিবেশ / মুছা দেওয়া আমার কাছে বোধগম্য নয়। আমি অবাক হয়েছি যে এটি এমনকি কার্যকর হয়।
a_horse_with_no_name

উত্তর:


359

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

GRANT USAGE, SELECT ON SEQUENCE cities_id_seq TO www;

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

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

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

52
এফওয়াইআই, সিনট্যাক্স "।। স্কেমা স্কিমা_নামে সমস্ত পাঠ্যক্রমগুলিতে" সমর্থিত।
এপিক_ফিল

5
মজাদার. আমি আমার সিকোয়েন্সটি টেবিলের উপরে সমস্ত কিছু করেছি, তবে এটি ক্রমটি আবরণ করে বলে মনে হচ্ছে না। এটি ওএসের মাধ্যমেও খুব মনে হয়।
কিন্ডার হকেনহুল

41
এটি কীভাবে আসল জিনিস? আমি কখন কোনও ব্যবহারকারীর কোনও টেবিলের মধ্যে ডেটা toোকানোর অনুমতি দিতে চাইব কিন্তু কলামগুলির মধ্যে একটি স্বতঃবৃদ্ধিযুক্ত এই সত্যটি তাদের ব্যবহার করার অনুমতি দিতে চাই না?
ব্রেট ওয়াইড্মিয়ের

5
IS SELECTপ্রয়োজনীয়? USAGEকি প্রয়োজন আবরণ করা উচিত নয় ?
Tᴀʀᴇǫ Mᴀʜᴍᴏᴏᴅ

6
নিখুঁতভাবে বিকাশকারীরা কীভাবে এই ধরণের জিনিস সহ্য করে তা আমার কাছে চঞ্চল। এটি এমন যে লোকেরা ইন্টারনেটের চারপাশে ঘুরে বেড়াতে চায় এবং বাক্সের বাইরে কাজ করা উচিত ছিল এমন জিনিসগুলি স্থির করার জন্য নিরলস স্ট্যাকওভারফ্লো থ্রেডগুলি পড়তে চায়।
milosmns

67

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

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

2
নোট করুন যে এটি পোস্টগ্র্রেএসকিউএল 9.0 এবং তারপরে কেবলমাত্র কাজ করে 8-তে এটি সম্পাদন করতে আপনি যেমন কিছু করতে পারেন: 'অনুদানের ব্যবহার নির্বাচন করুন, নির্বাচন করুন' || উদ্ধৃতি_নিধি (স্কিম্যানাম) || '।' || উদ্ধৃতি_নিবাসী (পুনঃনামকরণ) || 'তো www!' FROM pg_statio_all_sequence WHERE স্কিমানাম = 'সর্বজনীন'; - টম গারকেন 2 দিন আগে
টম গারকেন

39

@ টম_গার্কেন, @ অ্যাপিক_ফিল এবং @ কেপসন তাদের বিদ্যমান বক্তব্যগুলির সাথে কাজ করার অনুমতি দেওয়ার জন্য তাদের বিবৃতিতে যথেষ্ট সঠিক। তবে, ব্যবহারকারী ভবিষ্যতে তৈরি সিকোয়েন্সগুলিতে অ্যাক্সেসের অধিকার পাবে না। এটি করার জন্য, আপনাকে গ্রেটার স্টেটমেন্টটি একটি ALL DEIFULT 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;

এটি অবশ্যই পোস্টগ্রিজ এসকিউএল 9+ এ কাজ করে।

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


-2

পোস্টগ্রিসে নিম্নলিখিত কমান্ডটি কার্যকর করুন।

পোস্টগ্রিসে লগইন করুন:

sudo su postgres;

পিএসকিএল ডিবি নাম;

সিকোয়েন্সটি তৈরি করুন সার্বজনীন.সিটি_আইডি_সেক ইনক্রিমেন্ট 1 মিনিট
0
ম্যাক্সালভ্যাল 1
স্টার্ট 1 ক্যাচ 1; টেবিল সর্বজনীন পজিশনকেন্দ্রিকদের_প্রেমী মালিকদের কাছে_ইডেস্কের মালিক;

pgowner আপনার ডাটাবেস ব্যবহারকারী হবে।

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