Skip to main content

INFO statement

The INFO command outputs information about the setup of the SurrealDB system. There are a number of different INFO commands for retrieving the configuration at the different levels of the database.

SurrealQL Syntax
INFO FOR [
ROOT
| NS | NAMESPACE
| DB | DATABASE
| TABLE @table
| USER @user [ON @level]
| SCOPE @scope
];

The information returned from an INFO command is an object containing items that almost always correspond to a matching DEFINE statement. For example, the INFO FOR NS command returns the information on the databases, tokens, and users of a namespace, which are defined with DEFINE DATABASE, DEFINE TOKEN, and DEFINE USER statements.

Example usage

There are a number of different INFO commands for retrieving the configuration at the different levels of the database.

System information

Root information

The top-level ROOT command returns information regarding the users and namespaces which exists within the SurrealDB system.

NOTE: You must be authenticated as a top-level root user to execute this command.

Examples

INFO FOR ROOT;
Sample output
{
"namespaces": {
"ns": "DEFINE NAMESPACE ns"
},
"users": {
"example": "DEFINE USER example ON ROOT PASSHASH '$argon2id$v=19$m=19456,t=2,p=1$S8ggGUFSZY9B6+ZUJADNAw$jcFYLOrx1tq+/YlVk63QNZcP+VbsGD8lpFPvM59aZF4' ROLES OWNER"
}
}

Namespace information

The NS or NAMESPACE command returns information regarding the users, tokens, and databases under the namespace in use.

NOTE: You must be authenticated as a top-level root user, or a namespace user to execute this command.

NOTE: You must have a NAMESPACE selected before running this command.

Examples

INFO FOR NS;
Sample output
{
"databases": {
"db": "DEFINE DATABASE db"
},
"tokens": {},
"users": {
"ns_user": "DEFINE USER ns_user ON NAMESPACE PASSHASH '$argon2id$v=19$m=19456,t=2,p=1$da30XYKIjHauYbW6CyqgXQ$4rnHoGa3itfY6LarGE/KwoZE+N+AXrydklDXUFUZXGQ' ROLES OWNER"
}
}

Database information

The DB or DATABASE command returns information regarding the users, tokens, scopes, tables, params, models, functions, and analyzers under the database in use.

NOTE: You must be authenticated as a top-level root user, a namespace user, or a database user to execute this command.

NOTE: You must have a NAMESPACE and a DATABASE selected before running this command.

Examples

INFO FOR DB;
Sample output
{
"analyzers": {},
"functions": {},
"models": {},
"params": {},
"scopes": {},
"tables": {
"person": "DEFINE TABLE person TYPE ANY SCHEMALESS PERMISSIONS NONE"
},
"tokens": {},
"users": {
"db_user": "DEFINE USER db_user ON DATABASE PASSHASH '$argon2id$v=19$m=19456,t=2,p=1$FhgETjyVbEZmcLiCHf5fCA$zXOb8b0lIzIRrtaLPpWXHlWylC4VFBsfr4SWPF3WBKE' ROLES OWNER"
}
}

Table information

The TABLE command returns information regarding the events, fields, tables, and live statement configurations on a specific table.

NOTE: You must be authenticated as a top-level root user, a namespace user, or a database user to execute this command.

NOTE: You must have a NAMESPACE and a DATABASE selected before running this command.

Examples

INFO FOR TABLE user;
Sample output
{
"events": {},
"fields": {
"name": "DEFINE FIELD name ON user TYPE string PERMISSIONS FULL"
},
"indexes": {},
"lives": {},
"tables": {}
}

User information

The USER command returns information for a user defined on either the root, namespace, or database level.

NOTE: You must be authenticated as a user equal to or greater than the level of the user you are attempting to obtain information for to execute this command.

Examples

INFO FOR USER root ON ROOT;
INFO FOR USER ns_user ON NAMESPACE;
INFO FOR USER db_user ON DATABASE;

If a level after ON is not specified, the INFO command will default to the database level. Thus, the following two commands are equivalent.

INFO FOR USER db_user ON DATABASE;
INFO FOR USER db_user;
Sample output
"DEFINE USER db_user ON DATABASE PASSHASH '$argon2id$v=19$m=19456,t=2,p=1$LvgY4ZdWBt5YR+TXd6SNJg$INeqLI5l9vhDtkDGOR2otZMsJHQcT60HtBGgT6F5I9s' ROLES OWNER"

Scope information

The SCOPE command returns information regarding the tokens defined under a specific scope.

NOTE: You must be authenticated as a top-level root user, a namespace user, or a database user to execute this command.

NOTE: You must have a NAMESPACE and a DATABASE selected before running this command.

Examples

INFO FOR SCOPE users;
Sample output
{
"tokens": {
"example": "DEFINE TOKEN example ON SCOPE users TYPE HS512 VALUE 'example'",
"example2": "DEFINE TOKEN example2 ON SCOPE users TYPE HS512 VALUE 'another_example_token'",
}
}