Re: [HACKERS] "CURRENT_ROLE" is not documented
От | Fabien COELHO |
---|---|
Тема | Re: [HACKERS] "CURRENT_ROLE" is not documented |
Дата | |
Msg-id | alpine.DEB.2.20.1705061934560.3896@lancre обсуждение исходный текст |
Ответ на | Re: [HACKERS] "CURRENT_ROLE" is not documented (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] "CURRENT_ROLE" is not documented
|
Список | pgsql-hackers |
>> psql> SELECT CURRENT_ROLE; >> current_user -- not a typo, it really says "current_user" > > Not as of HEAD ;-) Good:-) I was connecting to a 9.6.2 server from a pg10dev client. >> Is there a special reason why it does not appear in the documentation? > > Oversight, evidently. Ok. >> Also, there is a SESSION_USER, but no SESSION_ROLE. Not sure of the >> rationale. > > SQL standard says so, basically. The standard draws a hard line between > "role" and "user", and says that only "users" can be the initiators of > sessions, so that the initial privilege identifier is always a user name > not a role name; hence no need for SESSION_ROLE. Hmmm... why not. I'm in the pg context where a USER is a ROLE, as you point out below. > PG doesn't draw such a hard line; for us, roles and users are the same > kind of entity, with the distinction being a can-login privilege that's > really only a minor attribute. So I think it's sensible for us to > treat these functions as synonyms. Yep. > I agree we ought to document this, but we likely need to mention > the discrepancy from the spec, too. Yep. A little subtle, though. Maybe it is enough to just say that for pg a user is a role, which is not the case in the standard? Thanks for the explanation! -- Fabien.
В списке pgsql-hackers по дате отправления: