Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s3T1E-00D9fU-32 for pgsql-admin@arkaria.postgresql.org; Sun, 05 May 2024 03:58:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1s3T1B-004Srf-Cu for pgsql-admin@arkaria.postgresql.org; Sun, 05 May 2024 03:58:30 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s3T1A-004SrW-Ov for pgsql-admin@lists.postgresql.org; Sun, 05 May 2024 03:58:29 +0000 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1s3T19-001VXj-4A for pgsql-admin@lists.postgresql.org; Sun, 05 May 2024 03:58:28 +0000 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-a59a8f0d941so179150566b.2 for ; Sat, 04 May 2024 20:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1714881504; x=1715486304; darn=lists.postgresql.org; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=/uQyD8eWubDmg744bRFwb1wq6jRMAAYtWBtNOvembkM=; b=MslABO+vezd1kWBLO/RDEIVpv57OwlTej5Sdx3+byFVAps2U/imrQDz3i5IDsRo2wO jWgTCmLg5ICRJ61qEku4CRNhktnr4GK3bL8caaEplf2rt5KD7jpClJ2wB71F5qpVwvH4 t43/f/3m9v5Wk1meXl6fOoBYzlKZAG2WlSymV6DLaB1Rz9j7sCp34A9aL3TR6V5F/8kq 7myma0FhhkhCtYzt5mdsoC4io9oni8nXiBXqkNtBPV6UdQfn/f2f19DAEWMbw3avK0L1 oMzhuT1M0COZkhNohKcWCUuJCkeMY1cUOtkTbeA5KEulT5K3Mi/5koDgO/23vKuXflQE IqQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714881504; x=1715486304; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/uQyD8eWubDmg744bRFwb1wq6jRMAAYtWBtNOvembkM=; b=YBw2sgbVeRHPDfR+Whyk2lQcygD7+woDY0njGkyAYu1AlUH0HmUDrXpk/jbpHQdERd u09crGikGFe+9FRznqc36JnzMT/Ab8FVAzpbv54XNYf6tSCe0a7m6OtG9PoLpqoBgnP6 5fPY0TazHWgEnByUIftWE+aW0ncCZ1Qm6cPwc4dtN9sNveCiiAd4PKTdmpo2pzN2wM2t GGA3H75frpH/rIGBIg1bPkorwUEMlOs61ZxRULo4gEu3OyrhqLCMT1x9zJ0cozZzNn8U sOKwPLR4Tzrhnm5Wy2/I/q5020qn6VkWbOxhzCCJDxQrC51L2v46o01/WN+crqsVuZxc Egow== X-Forwarded-Encrypted: i=1; AJvYcCXCYMqA7ekBCsCfgcQIJmagw8q5fDIqdT68NlcoXIGdx2PC6VFZCA99qQ4H9jFOt338JqDXDatkBwEiBYFhBA23KPyR2f4vJqGPzB27lpHpJQ== X-Gm-Message-State: AOJu0YzEh3edcoX9a1SEYXHWofLJVPW0GGDmjADlxsiu9tweaQcQP7mq +6WLVF3y6n7IGY11A0J1QbGh71WYlNkHgWwauJs7OwF7hAxtuht2+W8/5H5Rs+0= X-Google-Smtp-Source: AGHT+IEqVH8iqqviMVhVhXMn6mvqwULivzMmrkF/TlTg1EJfYN5huHOcZyWEXQ3HmLR44o0s8INzkw== X-Received: by 2002:a50:930a:0:b0:566:4aa9:7143 with SMTP id m10-20020a50930a000000b005664aa97143mr4094765eda.14.1714881504510; Sat, 04 May 2024 20:58:24 -0700 (PDT) Received: from localhost.localdomain ([2001:871:260:1f7f:15a9:f06d:b41d:dcd2]) by smtp.gmail.com with ESMTPSA id fk4-20020a056402398400b005701eaa2023sm3576679edb.72.2024.05.04.20.58.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 May 2024 20:58:24 -0700 (PDT) Message-ID: <0aea4ab65af243d2a326ee92df68bd9309c64433.camel@cybertec.at> Subject: Re: Foreign tables - oracle_fdw From: Laurenz Albe To: Edwin UY , pgsql-admin@lists.postgresql.org Date: Sun, 05 May 2024 05:58:23 +0200 In-Reply-To: References: Autocrypt: addr=laurenz.albe@cybertec.at; prefer-encrypt=mutual; keydata=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 +AnW5l0HsQcY9ntFL/zEBOaonjdJf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.4 (3.50.4-1.fc39) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, 2024-05-05 at 15:07 +1200, Edwin UY wrote: > I followed this link for using oracle_fdw to access Oracle from PostgreSQ= L. > Oracle is ON-PREM and PostgreSQL is Aurora-PostgreSQL-RDS-Version 15. >=20 > As administrator: >=20 > CREATE EXTENSION oracle_fdw; > CREATE SERVER oradb FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver '//= endpoint:port/DB_name'); > GRANT USAGE ON FOREIGN SERVER oradb TO user1; > As user1 >=20 > CREATE USER MAPPING FOR user1 SERVER oradb OPTIONS (user 'oracleuser', pa= ssword 'mypassword'); > CREATE FOREIGN TABLE mytab (a int) SERVER oradb OPTIONS (table 'MYTABLE')= ; > SELECT * FROM mytab; > The SELECT gives ERROR: =C2=A0permission denied for schema public > I have to do GRANT ALL ON SCHEMA public TO user1, this resolves the permi= ssion denied error. >=20 > Ideally, I don't really want each user to be doing the create user mappin= g and create foreign table. >=20 > Is it possible that as schema owner of either schema1 or schema2, i.e. ad= ministrator, > I create the user mapping and the foreign tables and then grant access to > user1 to user5 and schema2/schema1? > I can't find any reference/doc/example on whether this is possible or not= . >=20 > I also don't have the password of each user. Can I use set role user1 to = user5 to do > the CREATE USER MAPPING and CREATE FOREIGN TABLE. >=20 > In summary, I am wanting to do the CREATE USER MAPPING and CREATE FOREIGN= TABLE once > only in either SCHEMA1 and SCHEMA2 and grant any role/user to be able to = access these > foreign tables, mainly just a select. The foreign table needs to be created only once, but you must give all user= s privileges to access the schema (USAGE) and the foreign table (SELECT, ...). You will need a shared schema that all users can use and place the foreign = table there. That schema need not be "public". If you don't want to create a user mapping for each user, you can also crea= te a user mapping for PUBLIC. Sich a user mapping will work for all authenticated us= ers, and they will all use the same Oracle user to connect to the remote database. If you want your users to use different Oracle users, you need to create a = user mapping for each individual user. Yours, Laurenz Albe