WarningThis statement is deprecated in favor of
DEFINE ACCESS ... TYPE RECORD
. Learn more in the DEFINE ACCESS.
DEFINE SCOPE
statementSetting scope access allows SurrealDB to operate as a web database. With scopes you can set authentication and access rules which enable fine-grained access to tables and fields.
DEFINE SCOPE
statement.DEFINE SCOPE
statement.
SurrealQL SyntaxDEFINE SCOPE [ OVERWRITE | IF NOT EXISTS ] @name SESSION @duration SIGNUP @expression SIGNIN @expression [ COMMENT @string ]
Below shows how you can create a scope using the DEFINE SCOPE
statement.
-- Enable scope authentication directly in SurrealDB DEFINE SCOPE account SESSION 24h SIGNUP ( CREATE user SET email = $email, pass = crypto::argon2::generate($pass) ) SIGNIN ( SELECT * FROM user WHERE email = $email AND crypto::argon2::compare(pass, $pass) ) ;
IF NOT EXISTS
clauseAvailable since: v1.3.0
The IF NOT EXISTS
clause can be used to define a scope only if it does not already exist. If the scope already exists, the DEFINE SCOPE
statement will return an error.
-- Create a SCOPE if it does not already exist DEFINE SCOPE IF NOT EXISTS example;