title: EXECUTE AS USER = 'dbo' Throws error. Why?
body: <p>When I create a new database and I execute <code>SELECT user</code> it returns me that the user is <code>dbo</code>. </p>
  
  <p>So I was creating a new user and executing the code as that user created. But when trying to change it again to <code>dbo</code>, it throws me an error that it doesn't exist, but I can see it. Why does this happens? I'm executing something wrong?</p>
  
  <pre><code>CREATE USER TestUser WITHOUT LOGIN
  SELECT  user --Returns dbo
  SELECT * FROM sys.database_principals --I can see both, dbo and TestUser and some other users of the system
  EXECUTE AS user = 'TestUser'
  SELECT  user --Returns TestUser
  EXECUTE AS user = 'dbo'; -- Says that it doesn't exist
  </code></pre>
  
  <p>Error that throws:</p>
  
  <blockquote>
    <p>Cannot execute as the database principal because the principal "dbo"
    does not exist, this type of principal cannot be impersonated, or you
    do not have permission.</p>
  </blockquote>
  
  <p>Using Microsoft SQL Server Management Studio    14.0.17119.0</p>