docs: which databases run procedures and row security
This commit is contained in:
+1
-1
@@ -87,7 +87,7 @@ createREST({
|
||||
|
||||
## Row security
|
||||
|
||||
With Postgres, row security is the strongest perimeter: the database itself hides the rows a session may not see. Connect as a role without `BYPASSRLS`, and set what your policies read in the `transaction` hook:
|
||||
Row security needs PostgreSQL, or SQL Server with security policies (see [Dialects](./dialects.md#sql-server)). With Postgres, it is the strongest perimeter: the database itself hides the rows a session may not see. Connect as a role without `BYPASSRLS`, and set what your policies read in the `transaction` hook:
|
||||
|
||||
```ts
|
||||
async transaction(tx, context) {
|
||||
|
||||
@@ -194,6 +194,8 @@ Answer: 409
|
||||
|
||||
## Procedures
|
||||
|
||||
PostgreSQL, MySQL and SQL Server run procedures; SQLite has no functions to call. A MySQL function returns a single value, and a SQL Server function cannot change data.
|
||||
|
||||
A procedure calls a database function at a path you choose. A `{name}` in the path passes that segment as the argument of the same name; the body's keys pass the others. Arguments are checked by name and type, and one with a default may be left out.
|
||||
|
||||
A procedure is a POST unless declared `method: 'GET'`. A GET procedure takes its arguments from the query string (`/search?q=milk&limit=10`), each once, and runs in a read-only transaction: use it for a function without side effects.
|
||||
|
||||
Reference in New Issue
Block a user