srvctl fails to stop/start database using non-db_user if the resource is added after starting GI (Doc ID 1668834.1)

Last updated on DECEMBER 11, 2014

Applies to:

Oracle Database - Enterprise Edition - Version 11.2.0.3 to 12.1.0.2 [Release 11.2 to 12.1]
Information in this document applies to any platform.

Symptoms

 osdba user added after startup of crs stack cannot start/stop database using srvctl. The clusterware stack needs to be restarted for srvctl to be able to stop/start the database resource.

$ crsctl getperm res ora.testdb.db
Name: ora.testdb.db
owner:oracle:rwx,pgrp:oinstall:r--,other::r--,group:dba:r-x,group:oper:r-x,user:grid:r-x

Adding a new user

$ useradd -G dba,oinstall testuser


As testuser

$ srvctl status database -d TESTDB
Instance TESTDB1 is running on node node1
Instance TESTDB2 is running on node node2

$ srvctl stop database -d TESTDB
PRCR-1133 : Failed to stop database TESTDB and its running services
PRCR-1132 : Failed to stop resources using a filter
CRS-0245: User doesn't have enough privilege to perform the operation
CRS-0245: User doesn't have enough privilege to perform the operation
CRS-0245: User doesn't have enough privilege to perform the operation
CRS-0245: User doesn't have enough privilege to perform the operation

As root

$ crsctl stop crs
$ crsctl start crs

As testuser

$ srvctl stop database -d TESTDB
$ echo $?
0

$ srvctl status database -d TESTDB
Instance TESTDB1 is not running on node node1
Instance TESTDB2 is not running on node node2

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms