Role

Role( name, [database] )
Role( name )
ScopedRole( name, database )
Role( name, [database] )
Role( name, [database] )
role( name, [database] )
Role( name, [database] )

Description

The Role function returns a Reference for the specified user-defined role’s name in the specified child database. If a child database is not specified, the role returned belongs to the current database.

When a child database is specified, an admin key must be used to call Role (server or client keys, or ABAC tokens, cannot be used to access a child database).

Also, Go does not support optional function parameters, nor function overloading. To specify a child database using the Go driver, call the ScopedRole function instead of Role.

Parameters

Argument Type Definition and requirements

name

The name of a role.

database

Optional - A Reference to a child database. If not specified, the current database is used.

A Reference to a child database.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Optional - A Reference to a child database. If not specified, the current database is used.

Returns

A Reference to a user-defined role with the specified name, in the specified child database (or the current database if database is not specified).

Examples

  1. The following query gets a Reference to the user-defined role named "admin" in the current database:

    try
    {
        Value result = await client.Query(
            Role("admin")
        );
        Console.WriteLine(result);
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
    RefV(id = "admin", collection = RefV(id = "roles"))
    result, err := client.Query(
    	f.Role("admin"))
    
    if err != nil {
    	fmt.Fprintln(os.Stderr, err)
    } else {
    	fmt.Println(result)
    }
    {admin 0xc00016e090 0xc00016e090 <nil>}
    System.out.println(
        client.query(
            Role("admin")
        ).get());
    ref(id = "admin", collection = ref(id = "roles"))
    client.query(
      q.Role('admin')
    )
    .then((result) => console.log(result))
    .catch((err) => console.error('Error: %s', err))
    Role("admin")
    result = client.query(
      q.role("admin")
    )
    print(result)
    Ref(id=admin, collection=Ref(id=roles))
    try {
      println(Await.result(
        client.query(Role("admin")),
        5.seconds
      ))
    } catch {
      case unknown: Throwable => println("Error: " + unknown.getMessage())
    }
    ref(id = "admin", collection = ref(id = "roles"))
  2. The following query gets a Reference to the user-defined role named "admin" in a child database named "child_db":

    try
    {
        Value result = await client.Query(
            Role("admin", Database("child_db"))
        );
        Console.WriteLine(result);
    }
    catch (Exception e)
    {
        Console.WriteLine($"ERROR: {e.Message}");
    }
    RefV(id = "admin", collection = RefV(id = "roles"), database = RefV(id = "child_db", collection = RefV(id = "databases")))
    result, err := client.Query(
    	f.ScopedRole("admin", f.Database("child_db")))
    
    if err != nil {
    	fmt.Fprintln(os.Stderr, err)
    } else {
    	fmt.Println(result)
    }
    {admin 0xc00011e300 0xc00011e300 0xc00011e360}
    System.out.println(
        client.query(
            Role("admin", Database("child_db"))
        ).get());
    ref(id = "admin", collection = ref(id = "roles"), database = ref(id = "child_db", collection = ref(id = "databases")))
    client.query(
      q.Role('admin', q.Database('child_db'))
    )
    .then((result) => console.log(result))
    .catch((err) => console.error('Error: %s', err))
    Role("admin", Database("child_db"))
    result = client.query(
      q.role("admin", q.database("child_db"))
    )
    print(result)
    Ref(id=admin, collection=Ref(id=roles), database=Ref(id=child_db, collection=Ref(id=databases)))
    try {
      println(Await.result(
        client.query(Role("admin", Database("child_db"))),
        5.seconds
      ))
    } catch {
      case unknown: Throwable => println("Error: " + unknown.getMessage())
    }
    ref(id = "admin", collection = ref(id = "roles"), database = ref(id = "child_db", collection = ref(id = "databases")))

Was this article helpful?

We're sorry to hear that.
Tell us how we can improve!
Visit Fauna's Discourse forums or email docs@fauna.com

Thank you for your feedback!