I got the below error while trying to modify the database properties (example changing recovery model), and I have db_owner privilege on the database. db_owner is sufficient to update the properties but we got the below error while trying to update it.
Cannot execute as the database principal because the principal "guest" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Microsoft SQL Server, Error: 15517)
Try the below steps to resolve the issue
1. Verify database owner is set to database or not, If database owner is null then assign "sa" or any other user to the database
2. If the user is already a member of database then it wont allow us to assign the same user as owner, so assign any other user as owner (but dont leave it as null)
3. Run the command "Alter authorization database::db_name to login_name"
4. Verify view any database option is selected for that user or not, if not assign that securable to the login.
I tried all the above options, later I realized we are using SSMS 2012 Tools RTM after upgrading the RTM tools with SP1 we are able to do view / modify the database properties.