Las rutinas con privilegios te permiten elevar los roles de un usuario mientras las utiliza. Estas rutinas con privilegios ([Privileged Routine Application](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=TSQS_PRA_Overview)) pueden utilizarse con rutinas y también con clases / métodos. Cuando las utilices, es importante asegurarse de incluir [**new $ROLES**](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_vroles#RCOS_vroles_new_roles), antes de elevar los privilegios con [AddRoles()](https://docs.intersystems.com/irisforhealth20222/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&PRIVATE=1&CLASSNAME=%25SYSTEM.Security#AddRoles). Por ejemplo:
 <span class="hljs-keyword">new</span> <span class="hljs-built_in">$ROLES</span>
 <span class="hljs-keyword">set</span> status=<span class="hljs-built_in">$System</span>.Security.AddRoles(<span class="hljs-string">"MyPrivilegedRoutineApplication"</span>)
De esta manera, te aseguras que de verdad los roles añadidos (elevados) desaparecen para el usuario una vez está fuera del alcance de la rutina / método. [Gracias a @Andreas.Dieckow por validar esto].