Tämä opas on tarkoitettu ChatGPT-työtilan ylläpitäjille sekä ChatGPT Plus- ja Pro-käyttäjille, jotka haluavat yhdistää ChatGPT:n Snowflakeen Snowflaken hallinnoiman MCP-palvelimen kautta.
Suurin osa määrityksistä tehdään Snowflakessa. Kun Snowflake on valmis, viimeistele Snowflake-mallin yhteys ChatGPT:ssä ja ota sitten käyttöön mallia käyttävä Snowflake-lisäosa.
Sisäänrakennettu OAuth: Jos se on saatavilla Snowflake-tililläsi ja ChatGPT:ssä, käytä Snowflake-ylläpitäjän käyttöön ottamaa ChatGPT-kumppanisovellusta. Kirjaudu Snowflakeen organisaatiosi kertakirjautumisella, jos se on määritetty. Sinun ei tarvitse syöttää asiakastunnusta tai asiakkaan salaista avainta ChatGPT:hen. Noudata alla olevan Sisäänrakennettu OAuth -osion ohjeita.
Oma OAuth-asiakas: Valitse tämä vaihtoehto, jos organisaatiosi edellyttää omaa OAuth-asiakasta tai sisäänrakennettu OAuth ei ole saatavilla. Noudata alla olevan Oma OAuth-asiakas -osion ohjeita.
Molemmat OAuth-vaihtoehdot edellyttävät alla kuvattuja yhteisiä MCP-palvelimen määrityksiä, taustaobjektien käyttöoikeuksia ja verkkoyhteyksiä. Tee yhteiset määritykset osioon Syötä Snowflake-palvelimen tiedot ChatGPT:hen asti ennen OAuthin määrittämistä.
Mitä olet ottamassa käyttöön
Luot Snowflaken hallinnoiman MCP-palvelimen, joka toimii ChatGPT:n yhdistimen endpointina. MCP-palvelin määrittää:
Mitä toimintoja ChatGPT voi käyttää.
Mihin Snowflake-tietoihin tai -objekteihin näillä työkaluilla on pääsy.
Millä Snowflake-roolilla kukin käyttäjä tekee valtuutuksen.
Mitkä Snowflake-tietokannan, skeeman ja MCP-palvelimen nimet yksilöivät endpointin.
Määritä sitten ChatGPT:ssä Snowflake - virallinen malli käyttäen hallinnoidun MCP-palvelimen täydellistä URL-osoitetta. Mallin määritysnäkymässä URL-osoite voi näkyä neljänä erillisenä kenttänä:
Snowflake-isäntänimen etuliite.
Tietokanta.
Skeema.
MCP-palvelimen nimi.
ChatGPT voi löytää ja käyttää vain MCP-palvelimen tarjoamia työkaluja, jotka käyttäjän valtuutuksessa käyttämä Snowflake-rooli sallii.
Ennen kuin aloitat
Tarvitset:
ChatGPT-työtilan ylläpitäjän tai omistajan oikeudet tai ChatGPT Plus- tai Pro-tilauksen.
Snowflake-käyttöoikeudet, joilla voi luoda MCP-palvelinobjekteja ja myöntää käyttöoikeuksia.
Snowflake-tietokannan ja -skeeman, johon MCP-palvelin sijoitetaan.
Päätöksen siitä, mitä ChatGPT saa tehdä: esimerkiksi käyttää Cortex Searchia, Cortex Analystia, vain lukuun tarkoitettua SQL:ää tai tiettyä proseduuria tai funktiota.
Vähimpien oikeuksien periaatteen mukaisen Snowflake-roolin, jota käyttäjät käyttävät sovelluksen valtuuttamiseen.
Snowflake-tilin isäntänimen etuliitteen, mukaan lukien mahdollisen alue- tai pilvipalvelutunnisteen.
Jos Snowflake-tilisi rajoittaa pääsyä verkkokäytännöllä tai sallittujen IP-osoitteiden luettelolla, pyydä Snowflake-ylläpitäjää sallimaan saapuvat yhteydet nykyisiltä ChatGPT-yhdistimien lähtevän liikenteen IP-osoitealueilta. Luettelo muuttuu, joten se on pidettävä ajan tasalla.
Valmistele nämä tiedot
Snowflake-isäntänimen etuliite: Snowflake-tilin URL-osoitteen osa ennen päätettä .snowflakecomputing.com.
Tietokanta: MCP-palvelimen sisältävä tietokanta.
Skeema: MCP-palvelimen sisältävä skeema.
MCP-palvelimen nimi: Snowflaken MCP-palvelinobjektin nimi.
Hallinnoidun MCP-palvelimen täydellinen URL-osoite, jos ChatGPT:n määritysnäkymä pyytää URL-osoitetta.
Snowflake-rooli: rooli, jota käyttäjien tulee käyttää sovelluksen valtuuttamiseen.
Työkaluluettelo: Snowflake-objektit ja -toiminnot, joita haluat ChatGPT:n käyttävän.
Päätä, mitä ChatGPT saa tehdä
Valitse vain ne ominaisuudet, jotka haluat tuoda käytettäväksi. Yleisiä vaihtoehtoja ovat:
Cortex Search -haku vastausten etsimiseen indeksoiduista Snowflake-tiedoista tai -sisällöistä.
Kysymyksiin vastaaminen Cortex Analystilla hyväksytyn semanttisen näkymän kautta.
Vain lukuun tarkoitettu SQL hallittujen kyselyjen suorittamiseen.
Snowflake-agentti, tallennettu proseduuri tai käyttäjän määrittämä funktio (UDF) tiettyä työnkulkua varten.
Jos otat SQL:n käyttöön, rajoita se vain lukuun, ellei organisaatiosi ole arvioinut ja hyväksynyt kirjoitusoikeuksia.
Avaa Snowflake-laskentataulukko
Kirjaudu Snowflake-sovellukseen.
Vaihda rooliin, jolla on oikeus luoda MCP-palvelin ja myöntää käyttöoikeuksia.
Siirry kohtaan Työtilat.

Luo työtila, jossa on SQL-tiedosto.

Aseta työtilan kontekstiksi tietokanta ja skeema, johon MCP-palvelin luodaan.

Luo Snowflake MCP -palvelin
Kirjaudu Snowflakeen roolilla, jolla on oikeus luoda MCP-palvelin ja myöntää käyttöoikeuksia. Avaa laskentataulukko siinä tietokannassa ja skeemassa, johon MCP-palvelin on tarkoitus luoda.
Suorita seuraavan esimerkin kaltainen lause. Korvaa nimet oman Snowflake-tietokantasi, skeemasi, palveluidesi, näkymiesi, laskentaresurssisi ja palvelimesi nimillä.
CREATE MCP SERVER CHATGPT_SNOWFLAKE_MCP FROM SPECIFICATION $$ tools: - name: "support-search" type: "CORTEX_SEARCH_SERVICE_QUERY" identifier: "CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE" title: "Support Search" description: "Search support content for relevant customer issues." - name: "revenue-analyst" type: "CORTEX_ANALYST_MESSAGE" identifier: "CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW" title: "Revenue Analyst" description: "Answer revenue questions using the approved semantic view." - name: "sql-readonly" type: "SYSTEM_EXECUTE_SQL" title: "Read-only SQL" description: "Run read-only SQL queries against approved Snowflake data." config: read_only: true query_timeout: 600 warehouse: "CHATGPT_WH" $$;

Tämän lauseen työkalujen nimet ja Snowflake-objektit ovat esimerkkejä:
support-searchtuo määritetyn Cortex Search -palvelun käytettäväksi.revenue-analysttuo määritetyn semanttisen näkymän käytettäväksi. Lisää tarvittaessa työkaluja muille näkymille.sql-readonlymahdollistaa vain lukuun tarkoitetut SQL-kyselyt määritetyllä laskentaresurssilla.
Käytä työkaluille pysyviä ja kuvaavia nimiä, jotta ChatGPT osaa valita oikean työkalun. MCP-palvelimen luominen ei automaattisesti myönnä käyttöoikeutta taustalla oleviin Snowflake-objekteihin.
Lisätietoja määritysvaihtoehdoista on ohjeessa Snowflaken hallinnoiman MCP-palvelimen luominen.
Myönnä tarvittavat Snowflake-käyttöoikeudet
Valitse Snowflake-rooli, jolla käyttäjät tekevät valtuutuksen, ja myönnä roolille käyttöoikeus seuraaviin:
Tietokanta ja skeema.
MCP-palvelin.
Kaikki työkalujen käyttämät taustaobjektit, kuten hakupalvelu, semanttinen näkymä tai laskentaresurssi.
Esimerkki:
GRANT USAGE ON DATABASE CHATGPT_APPS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON SCHEMA CHATGPT_APPS.TOOLS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON CORTEX SEARCH SERVICE CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT SELECT ON SEMANTIC VIEW CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;
Jos MCP-palvelin tarjoaa käyttöön UDF-funktion, tallennetun proseduurin tai Cortex-agentin, myönnä tarvittavat käyttöoikeudet myös kyseiseen objektiin.
Varmista, että Snowflake on valmis
Suorita:
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
Suorita sitten:
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
Varmista seuraavat asiat:
Palvelin on olemassa oikeassa tietokannassa ja skeemassa.
Työkaluluettelo vastaa tarkoitustasi.
Kunkin työkalun
identifierviittaa oikeaan Snowflake-objektiin.Yhteyden muodostamiseen käytettävällä roolilla on MCP-palvelimeen
USAGE-oikeus.Yhteyden muodostamiseen käytettävällä roolilla on tarvittavat käyttöoikeudet kaikkiin taustaobjekteihin.
Syötä Snowflake-palvelimen tiedot ChatGPT:hen
Jos määrität yhteyden työtilalle, avaa admin.openai.com, valitse haluamasi ChatGPT-työtila ja avaa Lisäosat. Lisätietoja työtilassa siirtymisestä ja vanhojen sovellusten käytöstä on ohjeessa Lisäosien ja sovellusten ylläpitoasetukset, tietoturva ja vaatimustenmukaisuus.
Vaihda ChatGPT:ssä tilille tai työtilaan, jossa sovelluksen on tarkoitus olla käytettävissä.
Siirry henkilökohtaista määritystä varten kohtaan Asetukset > Lisäosat tai työtilan ylläpitäjänä kohtaan Hallintakonsoli > Lisäosat, jos määrität yhteyden työtilalle.
Etsi Snowflake.
Ota käyttöön Snowflake - virallinen malli.
Avaa Snowflake - virallinen malli, anna yhteydelle selkeä nimi ja valitse Yhdistä.
Syötä hallinnoidun MCP-palvelimen täydellinen URL-osoite:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
Esimerkki:
https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

Jos määritysnäkymässä Snowflaken asetukset näkyvät erillisinä kenttinä, käytä samoja arvoja kuin URL-osoitteessa:
Snowflake-isäntänimen etuliite
Käytä Snowflake-tilisi URL-osoitteen osaa ennen päätettä .snowflakecomputing.com, mukaan lukien mahdollinen alue- tai pilvipalvelutunniste.
Jos esimerkiksi tilin URL-osoite alkaa näin:
https://myorg-myaccount.azure.snowflakecomputing.com
Isäntänimen etuliite on:
myorg-myaccount.azure
Tietokanta
Syötä MCP-palvelimen sisältävä tietokanta, esimerkiksi:
CHATGPT_APPS
Skeema
Syötä MCP-palvelimen sisältävä skeema, esimerkiksi:
TOOLS
MCP-palvelimen nimi
Syötä Snowflaken MCP-palvelinobjektin nimi, esimerkiksi:
CHATGPT_SNOWFLAKE_MCP
Määritä OAuth
Valitse OAuth-vaihtoehto, joka on saatavilla tililläsi ja täyttää organisaatiosi vaatimukset. Molemmissa vaihtoehdoissa käytetään yllä olevia yhteisiä MCP-palvelimen määrityksiä sekä alla kuvattuja yhteystestejä ja käyttöoikeusasetuksia.
Kummassakin OAuth-vaihtoehdossa Snowflake käyttää kunkin käyttäjän oletusroolia, kun käytössä on session:role:all. Oletusroolin on oltava OAuth-integraation sallittujen roolien luettelossa, jos sellainen on määritetty, eikä rooli saa olla estetty. Toista hyväksyttyä roolia ei valita automaattisesti, vaikka sinulla olisi sellainen.
Sisäänrakennettu OAuth
Ennen kuin jatkat, suorita yllä olevat yhteiset vaiheet: luo MCP-palvelin, myönnä käyttöoikeudet, tarkista palvelin ja syötä sen tiedot ChatGPT:hen. Nämä vaiheet on suoritettava, vaikka olisit siirtynyt suoraan tähän osioon.
Käytä tätä vaihtoehtoa vain, jos ChatGPT-kumppanisovellus on saatavilla Snowflake-tililläsi ja sisäänrakennettu OAuth on saatavilla ChatGPT:n määritysikkunassa.
Pyydä Snowflake-ylläpitäjää ottamaan ChatGPT-kumppani-integraatio käyttöön samalla Snowflake-tilillä, jolla MCP-palvelin sijaitsee. Hyödynnä jo käytössä olevaa ChatGPT-kumppani-integraatiota.
Valitse ChatGPT:n määritysikkunassa sisäänrakennettu OAuth. Sinun ei tarvitse syöttää asiakastunnusta tai asiakkaan salaista avainta eikä rekisteröidä paluukutsun URL-osoitetta.
Jatka alla olevaan Yhdistä Snowflake ja hallitse sitä -osioon, jossa kirjaudut sisään, annat suostumuksen ja määrität käyttöoikeudet. Suorita sitten Testaa sovellus -osion vaiheet, myös testit käyttöoikeuden saaneilla jäsenillä, joilla ei ole ylläpitäjän oikeuksia.
Edellä kuvattu oletusroolin, sallittujen roolien luettelon ja estettyjen roolien toiminta koskee myös tätä vaihtoehtoa.
Oma OAuth-asiakas
Ennen kuin jatkat, suorita yllä olevat yhteiset vaiheet: luo MCP-palvelin, myönnä käyttöoikeudet, tarkista palvelin ja syötä sen tiedot ChatGPT:hen. Nämä vaiheet on suoritettava, vaikka olisit siirtynyt suoraan tähän osioon.
Omaa OAuth-asiakasta varten tarvitset Snowflakesta asiakastunnuksen ja asiakkaan salaisen avaimen. Edellä kuvattu oletusroolin, sallittujen roolien luettelon ja estettyjen roolien toiminta koskee myös tätä vaihtoehtoa.
Valitse ChatGPT:n määritysikkunassa OAuth-lisäasetukset > Käyttäjän määrittämä OAuth-asiakas ja kopioi ChatGPT:ssä näkyvä Paluukutsun URL-osoite täsmälleen.
Luo oma OAuth-tietoturvaintegraatio, jossa on asetus
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'ja jonkaOAUTH_REDIRECT_URIon täsmälleen sama kuin kyseinen paluukutsun URL-osoite.Suorita seuraava lause Snowflakessa. Kirjoita integraation nimi isoilla kirjaimilla:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');Liitä JSON-tuloksesta
oauth_client_idChatGPT:n OAuth-asiakastunnus-kenttään jaoauth_client_secretOAuth-asiakkaan salainen avain -kenttään.Aseta Tunniste-endpointin todennusmenetelmä -asetuksen arvoksi
client_secret_basic.
Kun olet syöttänyt oman asiakkaan tunnistetiedot, jatka alla oleviin osioihin Yhdistä Snowflake ja hallitse sitä sekä Testaa sovellus.
Yhdistä Snowflake ja hallitse sitä
Kummassakin OAuth-vaihtoehdossa valitse samassa ChatGPT:n määritysikkunassa Jatka, kirjaudu Snowflakeen ja valtuuta yhteys. Voit käyttää organisaatiosi kertakirjautumista, jos se on määritetty.
Jos määrität yhteyden työtilalle, määritä lisäosan asennuskäytäntö ja rooli- tai ryhmäkohtaiset käyttöoikeudet jäsenille, joiden on tarkoitus käyttää sitä. Varmista, että sekä Snowflake että Snowflake - virallinen malli ovat käytössä.
Työtilan ylläpitäjät vastaavat Käyttäjien käyttöoikeudet -asetuksen määrittämisestä rooleille, joiden on tarkoitus käyttää Snowflakea.
Työtilan ylläpitäjät vastaavat käytettäväksi tuotujen työkalujen Toimintojen hallinta -asetusten tarkistamisesta.
Työtilan ylläpitäjät vastaavat Sovelluksen käyttöoikeudet -asetusten tarkistamisesta ja päättävät niiden avulla, milloin ChatGPT pyytää jäseniltä luvan ennen sovelluksen käyttöä.
Nämä sovelluksen käyttöoikeudet koskevat ChatGPT-keskusteluja. Työtila-agentit käyttävät rakentajansa määrittämiä agenttikohtaisia asetuksia, jotka määräävät, mitkä sovellustoiminnot ovat käytettävissä ja milloin loppukäyttäjiltä pyydetään hyväksyntä niiden suorittamiseen. Lisätietoja agenttien toiminnasta on ohjeessa ChatGPT:n työtila-agentit Enterprise- ja Business-tilauksissa.
Testaa sovellus
Avaa keskustelu, valitse Snowflake ja testaa yhteys.
Varmista, että ChatGPT löytää määrittämäsi työkalut.
Suorita ensin vähäriskinen lukutoiminto, kuten haku tai vain lukuun tarkoitettu kysely hyväksytyistä tiedoista.
Varmista, että Snowflaken käyttöoikeudet estävät pääsyn hyväksytyn roolin ja objektien ulkopuolelle.
Jos määrität yhteyden työtilalle, testaa sitä käyttöoikeuden saaneilla jäsenillä, joilla ei ole ylläpitäjän oikeuksia ja joilla on eri Snowflake-oletusroolit. Ylläpitäjän onnistunut yhteys ei varmista, että kaikki jäsenet voivat muodostaa yhteyden.
Työtilan ylläpitäjille pelkän Snowflake-lisäosan käyttöönotto ei riitä. Jos Snowflake - virallinen malli ei ole käytössä eikä sitä ole yhdistetty, lisäosa voi näkyä jäsenille poissa käytöstä.
MCP-palvelimen URL-osoite ja OAuthin toiminta
ChatGPT muodostaa yhteyden Snowflaken hallinnoiman MCP-palvelimen täydelliseen URL-osoitteeseen:
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
ChatGPT selvittää seuraavat Snowflaken OAuth-endpointit URL-osoitteen Snowflake-isäntänimen etuliitteen avulla:
Valtuutus:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorizeTunniste:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request
Älä liitä Snowsightin URL-osoitetta, pelkkää Snowflake-tilin juuriosoitetta tai osoitetta, jossa on ylimääräisiä polun osia. MCP-osoitteen on sisällettävä /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server} ja vastattava täsmälleen Snowflake-objektejasi.
Vianmääritys
Snowflake on käytössä ylläpitäjällä mutta ei jäsenellä
Varmista, että sekä Snowflake että Snowflake - virallinen malli on otettu käyttöön kohdassa Hallintakonsoli > Lisäosat.
Avaa Snowflake - virallinen malli ja suorita sen Yhdistä-toiminto loppuun. Pelkkä mallin käyttöönotto ilman yhteyden muodostamista ei riitä.
Avaa Snowflake ja varmista, että malli näkyy sen edellyttämänä sovelluksena.
Varmista, että lisäosan asennuskäytäntö sallii kyseisen jäsenen roolin tai ryhmän.
MCP-palvelinta ei löydy
Tarkista MCP-palvelimen täydellinen URL-osoite uudelleen tai mallin neljä kenttää, jos määritysnäkymä pyytää niitä.
Varmista, että MCP-palvelin on olemassa juuri kyseisessä tietokannassa ja skeemassa.
ChatGPT:ssä ei näy työkaluja
Varmista, että MCP-palvelimen määritys sisältää työkaluja.
Varmista, että roolilla on MCP-palvelimeen
USAGE-oikeus.
Työkalu näkyy, mutta sen käyttö epäonnistuu
Varmista, että roolilla on tarvittava käyttöoikeus taustalla olevaan Snowflake-objektiin, kuten hakupalveluun, semanttiseen näkymään, laskentaresurssiin, proseduuriin tai UDF-funktioon.
SQL-työkalu ei toimi
Varmista, että laskentaresurssin nimi on oikein ja että laskentaresurssi on käynnissä.
Varmista, että roolilla on laskentaresurssiin
USAGE-oikeus.Varmista, että
read_only: trueon asetettu, jos tarkoituksena on sallia vain luku.
Pyydetty rooli ALL on nimenomaisesti estetty
Pyydä Snowflake-ylläpitäjää vertaamaan oletusrooliasi OAuth-integraation sallittuihin ja estettyihin rooleihin. Toista sallittua roolia ei valita automaattisesti, vaikka sinulla olisi sellainen. Vaihda tarvittaessa oletusrooliksi hyväksytty rooli ja muodosta yhteys uudelleen. Oletusroolin vaihtaminen vaikuttaa myös Snowflake-istuntoihisi ChatGPT:n ulkopuolella.
Valtuutus epäonnistuu
Varmista, että käyttäjä voi kirjautua Snowflakeen.
Kun käytät arvoa
session:role:all, varmista, että OAuth-integraatio sallii käyttäjän oletusroolin.Varmista, että määrityksessä käytetään Snowflaken hallinnoiman MCP-palvelimen OAuth-valtuutusprosessia.
Jos käytät omaa OAuth-asiakasta, varmista, että Asiakastunnus ja Asiakkaan salainen avain vastaavat Snowflaken OAuth-integraation arvoja ja että integraation uudelleenohjaus-URI vastaa täsmälleen ChatGPT:ssä näkyvää Paluukutsun URL-osoitetta.
Jos käytät sisäänrakennettua OAuthia, pyydä Snowflake-ylläpitäjää tarkistamaan, että ChatGPT-kumppani-integraatio on saatavilla ja käytössä tilillä, jolla MCP-palvelin sijaitsee.
Snowflaken verkkokäytäntö tai sallittujen IP-osoitteiden luettelo estää yhdistimen toiminnan
Pyydä Snowflake-ylläpitäjää päivittämään Snowflaken verkkokäytäntö tai pääsysäännöt.
Salli saapuvat yhteydet nykyisiltä ChatGPT-yhdistimien lähtevän liikenteen IP-osoitealueilta.
Määritä nämä sallitut osoitteet Snowflakessa. Tämä määritys on erillinen ChatGPT-työtilan sallittujen IP-osoitteiden luettelosta.
Automatisoi päivitykset julkaistusta JSON-tiedostosta mahdollisuuksien mukaan, sillä osoitealueet voivat muuttua.
Isäntänimeen liittyvä yhteysongelma
Käytä oikeaa Snowflake-isäntänimen etuliitettä. Alaviivoja sisältävät Snowflake-isäntänimet voivat aiheuttaa ongelmia. Käytä mieluummin yhdysmerkkejä.
