Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
SQL MCP Server bevindt zich in de preview-fase en deze documentatie en de implementatie van de engine kan tijdens deze evaluatieperiode worden aangepast.
SQL MCP Server maakt zes DML-hulpprogramma's (Data Manipulation Language) beschikbaar voor AI-agents. Deze hulpprogramma's bieden een getypt CRUD-oppervlak voor databasebewerkingen: het maken, lezen, bijwerken en verwijderen van records plus het uitvoeren van opgeslagen procedures. Alle hulpprogramma's respecteren op rollen gebaseerd toegangsbeheer (RBAC), entiteitsmachtigingen en beleidsregels die zijn gedefinieerd in uw configuratie.
Wat zijn DML-hulpprogramma's?
DML-hulpprogramma's (Data Manipulation Language) verwerken gegevensbewerkingen: records maken, lezen, bijwerken en verwijderen, plus het uitvoeren van opgeslagen procedures. In tegenstelling tot DDL (Data Definition Language) dat het schema wijzigt, werkt DML uitsluitend op het gegevensvlak in bestaande tabellen en weergaven.
De zes DML-hulpprogramma's zijn:
-
describe_entities- Detecteert beschikbare entiteiten en bewerkingen -
create_record- Nieuwe rijen invoegen -
read_records- Query's uitvoeren op tabellen en weergaven -
update_record- Wijzigt bestaande rijen -
delete_record- Verwijdert rijen -
execute_entity- Voert opgeslagen procedures uit
Wanneer DML-tools wereldwijd en voor een entiteit zijn ingeschakeld, stelt de SQL MCP Server deze via het MCP-protocol beschikbaar. Agents communiceren nooit rechtstreeks met uw databaseschema. Ze werken via de abstractielaag van data-API's.
De hulpprogramma's
list_tools antwoord
Wanneer een agent aanroept, retourneert list_toolsSQL MCP Server:
{
"tools": [
{ "name": "describe_entities" },
{ "name": "create_record" },
{ "name": "read_records" },
{ "name": "update_record" },
{ "name": "delete_record" },
{ "name": "execute_entity" }
]
}
describe_entities
Retourneert de entiteiten die beschikbaar zijn voor de huidige rol. Elke vermelding bevat veldnamen, gegevenstypen, primaire sleutels en toegestane bewerkingen. Met dit hulpprogramma wordt geen query uitgevoerd op de database. In plaats daarvan leest deze uit de configuratie in het geheugen die is gebouwd op basis van uw configuratiebestand.
{
"entities": [
{
"name": "Products",
"description": "Product catalog with pricing and inventory",
"fields": [
{
"name": "ProductId",
"type": "int",
"isKey": true,
"description": "Unique product identifier"
},
{
"name": "ProductName",
"type": "string",
"description": "Display name of the product"
},
{
"name": "Price",
"type": "decimal",
"description": "Retail price in USD"
}
],
"operations": [
"read_records",
"update_record"
]
}
]
}
Opmerking
De entiteitsopties die worden gebruikt door een van de CRUD-tools en DML-tools, zijn rechtstreeks afkomstig van describe_entities. De interne semantische beschrijving die aan elk hulpprogramma is gekoppeld, dwingt deze tweestapsstroom af.
maak_record aan
Hiermee maakt u een nieuwe rij in een tabel. Vereist toestemming om de entiteit aan te maken binnen de huidige rol. Het hulpprogramma valideert invoer op basis van het entiteitsschema, dwingt machtigingen op veldniveau af, past beleidsregels voor maken toe en retourneert de gemaakte record met gegenereerde waarden.
read_records
Query's uitvoeren op een tabel of weergave. Ondersteunt filteren, sorteren, pagineren en veldselectie. Het hulpprogramma bouwt deterministische SQL op basis van gestructureerde parameters, past leesmachtigingen en veldprojecties toe en dwingt beveiligingsbeleid op rijniveau af.
Resultaten van read_records worden automatisch in de cache opgeslagen met behulp van het cachesysteem van Data API Builder. U kunt TTL (Time-to-Live) in de cache globaal of per entiteit configureren om de belasting van de database te verminderen.
update_record bijwerken
Hiermee wijzigt u een bestaande rij. Vereist dat de primaire sleutel en velden worden bijgewerkt. De tool controleert of de primaire sleutel bestaat, dwingt updategerelateerde machtigingen en beleid af, en werkt alleen velden bij die de huidige rol kan wijzigen.
delete_record
Hiermee verwijdert u een bestaande rij. Hiervoor is de primaire sleutel vereist. Het hulpprogramma valideert dat de primaire sleutel bestaat, dwingt verwijdermachtigingen en beleid af en voert veilige verwijdering uit met transactieondersteuning.
Waarschuwing
In sommige productiescenario's wordt dit hulpprogramma globaal uitgeschakeld om modellen breed te beperken.
execute_entity
Voert een opgeslagen procedure uit. Ondersteunt invoerparameters en uitvoerresultaten. Het hulpprogramma valideert invoerparameters op basis van de procedurehandtekening, dwingt uitvoermachtigingen af en geeft parameters veilig door.
Runtime-configuratie
Configureer DML-hulpprogramma's globaal in de runtimesectie van uw dab-config.json:
{
"runtime": {
"mcp": {
"enabled": true,
"path": "/mcp",
"dml-tools": {
"describe-entities": true,
"create-record": true,
"read-records": true,
"update-record": true,
"delete-record": true,
"execute-entity": true
}
}
}
}
De CLI gebruiken
Eigenschappen afzonderlijk instellen met behulp van de DATA API Builder CLI:
dab configure --runtime.mcp.enabled true
dab configure --runtime.mcp.path "/mcp"
dab configure --runtime.mcp.dml-tools.describe-entities true
dab configure --runtime.mcp.dml-tools.create-record true
dab configure --runtime.mcp.dml-tools.read-records true
dab configure --runtime.mcp.dml-tools.update-record true
dab configure --runtime.mcp.dml-tools.delete-record true
dab configure --runtime.mcp.dml-tools.execute-entity true
Hulpprogramma's uitschakelen
Wanneer u een hulpprogramma uitschakelt op runtimeniveau, is het voor agenten nooit zichtbaar, ongeacht entiteitsrechten of rolconfiguratie. Deze instelling is handig wanneer u strikte operationele grenzen nodig hebt.
Algemene scenario's
- Uitschakelen
delete-recordom gegevensverlies in productie te voorkomen - Uitschakelen
create-recordvoor alleen-lezen rapportage-eindpunten - Uitschakelen
execute-entitywanneer opgeslagen procedures niet worden gebruikt
Wanneer een hulpprogramma globaal is uitgeschakeld, wordt het hulpprogramma verborgen voor het list_tools antwoord en kan het niet worden aangeroepen.
Entiteitsinstellingen
Entiteiten nemen automatisch deel aan MCP, tenzij u ze expliciet beperkt. De dml-tools eigenschap bestaat zodat u een entiteit kunt uitsluiten van MCP of de mogelijkheden ervan kunt beperken, maar u hoeft niets in te stellen voor normaal gebruik.
{
"entities": {
"Products": {
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"mcp": {
"dml-tools": false
}
}
}
}
Als u mcp.dml-tools niet specificeert voor een entiteit, wordt deze automatisch ingesteld op true wanneer MCP wereldwijd is ingeschakeld.
Fijnmazige controle
U kunt specifieke hulpprogramma's voor afzonderlijke entiteiten uitschakelen:
{
"entities": {
"AuditLogs": {
"mcp": {
"dml-tools": {
"create-record": true,
"read-records": true,
"update-record": false,
"delete-record": false
}
}
}
}
}
Met deze configuratie kunnen agents auditlogboeken maken en lezen, maar voorkomt u dat wijzigingen of verwijderingen worden aangebracht.
RBAC-integratie
Elke DML-hulpprogrammabewerking dwingt uw regels voor op rollen gebaseerd toegangsbeheer af. De rol van een agent bepaalt welke entiteiten zichtbaar zijn, welke bewerkingen zijn toegestaan, welke velden zijn opgenomen en of beleid op rijniveau van toepassing is.
Als de anonymous rol alleen leesmachtigingen toestaat op Products:
-
describe_entitieswordt alleen weergegevenread_recordsin bewerkingen -
create_record,update_recordendelete_recordzijn niet beschikbaar - Alleen velden die zijn toegestaan voor
anonymousverschijnen in het schema
Configureer rollen in uw dab-config.json:
{
"entities": {
"Products": {
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": {
"include": ["ProductId", "ProductName", "Price"],
"exclude": ["Cost"]
}
}
]
},
{
"role": "admin",
"actions": ["*"]
}
]
}
}
}