Re: Re: BUG #13755: pgwin32_is_service not checking if SECURITY_SERVICE_SID is disabled
От | MauMau |
---|---|
Тема | Re: Re: BUG #13755: pgwin32_is_service not checking if SECURITY_SERVICE_SID is disabled |
Дата | |
Msg-id | E6EDF63C4AE04E1E83F0AA478AE9488C@tunaPC обсуждение исходный текст |
Ответ на | Re: Re: BUG #13755: pgwin32_is_service not checking if SECURITY_SERVICE_SID is disabled (Michael Paquier <michael.paquier@gmail.com>) |
Ответы |
Re: Re: BUG #13755: pgwin32_is_service not checking if
SECURITY_SERVICE_SID is disabled
|
Список | pgsql-hackers |
From: Michael Paquier Hm.. I have just tested HEAD, my patch and your patch using my patch test on pg_ctl.c, but I am always getting pgwin32_is_service set to 0 when running pg_ctl start from a terminal, and set it to 1 when running pg_ctl service to register the service startup. Could you precise in which ways you started the Postgres instance and could you post the patch of pg_ctl you used? I am afraid that I am taking it incorrectly because I am not able to see any differences. Also, did you test the patch I posted and were you able to see the same differences as with your patch? I still think that my short patch is logically correct but if the tests are not we are in a no-go position for any fix posted on this thread. Yes, I tested both your patch and mine. I used the attached pg_ctl.c. It adds -z option which disables SECURITY_SERVICE_RID. I registered the service with "pg_ctl register -N pg -D datadir -w -z -S demand -U myuser -P mypass", then started the service with "net start pg". The following messages were output in the server log: LOG: pgwin32_is_admin = 0 LOG: pgwin32_is_service = 0 LOG: database system was shut down at 2016-11-07 22:04:46 JST LOG: MultiXact member wraparound protections are now enabled LOG: database system is ready to accept connections LOG: autovacuum launcher started Without -z, the message becomes "pgwin32_is_service = 1". And without the win32security.c patch, "pgwin32_is_service = 1" is output. I guess you registered the service without specifying the service account with -U. Then the service runs as the Local System account, whence pgwin32_is_service() returns 1. Regards Takayuki Tsunakawa
Вложения
В списке pgsql-hackers по дате отправления: