Re: Information/schema hiding...

Поиск
Список
Период
Сортировка
От Sean Chittenden
Тема Re: Information/schema hiding...
Дата
Msg-id DCF5FD1D-8C4B-11D8-B971-000A95C705DC@chittenden.org
обсуждение исходный текст
Ответ на Re: Information/schema hiding...  (Neil Conway <neilc@samurai.com>)
Ответы Re: Information/schema hiding...  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
>> Should information hiding be done in psql(1) or should this be managed
>> by the backend and all logic kept out of psql(1)?
>
> If the intent of this feature is security, it seems totally pointless 
> to
> implement it in psql (leaving aside whether it's actually a good idea 
> or
> not).
>
> [ WRT to search_path and nonexistent schemas ]

*nods*  I completely agree that the best place for this to happen is in 
the backend and not psql.

>>> Why is that needed?  It's already a no-op AFAIR.  It also is
>>> incompatible with the existing behavior, in which nonexistent schemas
>>> (think "$user") are dropped silently rather than noisily.
>>
>> Actually, $user still works..
>
> I think the more important question is: "Why is that needed?"

Two reasons come to mind.  First, If you change your search_path to a 
valid schema that you have no access to and try and look for database 
objects, you get the impression that its an empty schema and not a 
schema that you don't have access to.  To prevent this, I changed the 
behavior of SET search_path so that it validates its input.  A warning 
may be appropriate, but I'd rather have the SET search_path fail than 
the CREATE [object] fail.  Second, SET search_path, in my mind, is 
little different than ALTER TABLE ADD CONSTRAINT: it's input can be 
validated and permissions can be checked, therefor should it should be.

> (Consider the PATH environmental var, which is fairly analogous to
> search_path -- that doesn't complain if you add nonexistent directories
> to it.)

Actually, search_path is closer in functionality to a union of the 
chdir(2) syscall and the PATH environment variable.  Any argument to 
chdir(2) is validated by the operating system and chdir(2) is a system 
call - not a library call - for this very reason.  Can you imagine a 
world where chdir(2) didn't validate the existence of directories as 
well as the permissions?

-sc

-- 
Sean Chittenden



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Mark Kirkwood
Дата:
Сообщение: Re: PostgreSQL configuration
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: PostgreSQL configuration