Executing an SP with least permissions

I have a script that our Helpdesk executes to gather info about user roles in each database on a server. They used to have high privleges on the SQl server but we have been working to scale back their privleges to only what they need. Our department could
always run the script for them.  I though about putting the script in a stored procedure and giving them execute permissions to the stored proc, but they still need underlying permissions.  I have attempted impersonation but if I allow them to impersonate
'sa', then I think I'm just blowing a hole in the security.  Here's the script they/we run.
DECLARE @databaseItr int
DECLARE @databaseName varchar(50)
DECLARE @tempSQL nvarchar(4000)
CREATE TABLE #RoleUserTemp
databaseName varchar(50),
roleName sysname,
username sysname,
userSID varbinary(85)
CREATE TABLE #DatabaseTemp
databaseIndex int IDENTITY(1,1),
databaseName varchar(50)
INSERT INTO #RoleUserTemp (roleName, username, userSID)
EXEC dbo.sp_helpsrvrolemember
UPDATE #RoleUserTemp
SET databaseName = '<system>'
WHERE databaseName IS NULL
INSERT INTO #DatabaseTemp (databaseName)
SELECT name FROM master.dbo.sysdatabases
SET @databaseItr = @@ROWCOUNT
--Iterate through databases
WHILE @databaseItr > 0
BEGIN
 --Get database name from temp table
 SET @databaseName = (SELECT databaseName FROM #DatabaseTemp WHERE databaseIndex = @databaseItr)
 --Get role membership for each role in this database
 SET @tempSQL = 'INSERT INTO #RoleUserTemp (roleName, username, userSID)
 EXEC [' + @databaseName + '].dbo.sp_helprolemember'
 EXEC sp_executesql @tempSQL
 --Set database name
 UPDATE #RoleUserTemp
 SET databaseName = @databaseName
 WHERE databaseName IS NULL
 SET @databaseItr = @databaseItr - 1
END
SELECT databaseName, roleName, username FROM #RoleUserTemp
DROP TABLE #DatabaseTemp
DROP TABLE #RoleUserTemp
Maybe there is a better way to get the info or maybe we should just run it for them.

I changed the server Role query and insert into the temp table as follows. 
INSERT INTO #RoleUserTemp (roleName, username)
SELECT SP1.name AS ServerRoleName,
 isnull (SP2.name, 'No members') AS LoginName  --SP2.name AS LoginName
 FROM sys.server_role_members AS SRM
 RIGHT OUTER JOIN sys.server_principals AS SP1
   ON SRM.role_principal_id = SP1.principal_id
 LEFT OUTER JOIN sys.server_principals AS SP2
   ON SRM.member_principal_id = SP2.principal_id
 WHERE SP1.is_fixed_role = 1 -- Remove for SQL Server 2008
 ORDER BY SP1.name;
I think this gets that part correct because when I query the temp table, I see the same results as when I run my old stored proc except it includes roles with no members.
I've changed the Database role section of the script to this:
INSERT INTO #DatabaseTemp (databaseName)
SELECT name FROM master.dbo.sysdatabases
SET @databaseItr = @@ROWCOUNT
--Iterate through databases
WHILE @databaseItr > 0
BEGIN
 --Get database name from temp table
 SET @databaseName = (SELECT databaseName FROM #DatabaseTemp WHERE databaseIndex = @databaseItr)
 --Get role membership for each role in this database
 SET @tempSQL = 'INSERT INTO #RoleUserTemp (roleName, username)
  SELECT DP1.name AS DatabaseRoleName,
  isnull (DP2.name, 'No members') AS DatabaseUserName
  FROM sys.database_role_members AS DRM
  RIGHT OUTER JOIN sys.database_principals AS DP1
  ON DRM.role_principal_id = DP1.principal_id
  LEFT OUTER JOIN sys.database_principals AS DP2
  ON DRM.member_principal_id = DP2.principal_id
  WHERE DP1.is_fixed_role = 1
  ORDER BY DP1.name'
 USE @DatabaseName
 EXEC sp_executesql @tempSQL
 --Set database name
 UPDATE #RoleUserTemp
 SET databaseName = @databaseName
 WHERE databaseName IS NULL
 SET @databaseItr = @databaseItr - 1
END
My line USE @DatabaseName is not correct though and I'm not sure what to change it to.  Also, then, the script calls another stored proc 'sp_executesql'.  Will that work or do I need to rework how the insert and select statement are invoked?

Similar Messages

  • Problem with file permissions

    Hello all,
    I am making a simple HttpServlet, which takes input
    from html page and saves in to a file, but I'm having a
    bit of a problem with file permissions.
    I'm getting the following exception
    java.security.AccessControlException: access denied (java.io.FilePermission ./data/result read)
         java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
         java.security.AccessController.checkPermission(AccessController.java:427)
         java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
         java.lang.SecurityManager.checkRead(SecurityManager.java:871)
         java.io.File.exists(File.java:700)
         SyksyHTTPServlet.doPost(SyksyHTTPServlet.java:31)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:585)
         org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
         java.security.AccessController.doPrivileged(Native Method)
         javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
         org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
         org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)The exception seems to occur when I'm trying to check whether the file already
    exists or not.
    The data directory has all permissions (read, write and execute) set for all users,
    and I have made an empty file called result inside the data directory for testing.
    This file has read and write permissions enabled for all users.
    Here's my code
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.Enumeration;
    import java.util.List;
    import java.util.ArrayList;
    public class SyksyHTTPServlet extends HttpServlet
         public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
              int totalCount = 0;
              List list;
              String song = request.getParameter("song");
              PrintWriter out = response.getWriter();
              File file = new File("./data/result");
              if(file.exists())  // this is line 31, which seems to cause the exception
                   list = readFile(file);
              else
                   file.createNewFile();
                   list = new ArrayList();
              list.add(song);
              writeFile(file, list);
              for(int i = 0 ; i < list.size() ; i++)
                   out.println(list.get(i));
         public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
              doPost(request, response);
         private List readFile(File file)
              List list = null;
              try
                   FileInputStream fis = new FileInputStream(file);
                   ObjectInputStream ois = new ObjectInputStream(fis);
                   list = (ArrayList)ois.readObject();
                   ois.close();
              catch(Exception e)
                   e.printStackTrace();
              return list;
         private void writeFile(File file, List list)
              try
                   FileOutputStream fos = new FileOutputStream(file);
                   ObjectOutputStream oos = new ObjectOutputStream(fos);
                   oos.writeObject(list);
                   oos.flush();
                   oos.close();
              catch(Exception e)
                   e.printStackTrace();
    }I'm using Tomcat 5.5 on Ubuntu Linux, if that has anything to do with this.
    I'll appreciate all help.
    kari-matti

    Hello again.
    I'm still having problems with this. I made
    a simple servlet that reads from and writes
    to text file. The reading part work fine on my
    computer, but the writing doesn't, not even
    an exception is thrown if the file exists that
    I'm trying to write to. If I try to create a new
    file I'll get an exception about file permissions.
    I also asked a friend of mine to try this same
    servlet on his windows computer and it works
    as it should.
    Here's the code
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    public class ReadServlet extends HttpServlet
         public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
              String s = "";
              PrintWriter out = response.getWriter();
              String docroot = getServletContext().getRealPath( "/" );
              out.println("docroot: "+docroot);
              File file = new File(docroot+"test.txt");
              if(file.exists())
                   s = readFile(file);
                   out.println(s);
              else
                   out.println("file not found");
                   //file.createNewFile();                    // causes exception
                   //out.println("new file created.");
              writeFile(file, "written by servlet");
              out.println("Now look in the file "+file.getPath());
              out.println("and see if it contains text 'written by servlet'");
         public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
              doPost(request, response);
         private String readFile(File file)
              FileInputStream fis = null;
              BufferedInputStream bis = null;
              DataInputStream dis = null;
              String s = "";
              try
                   fis = new FileInputStream(file);
                   bis = new BufferedInputStream(fis);
                   dis = new DataInputStream(bis);
                   s = dis.readLine();
                   fis.close();
                   bis.close();
                   dis.close();
              catch(Exception e)
                   e.printStackTrace();
              return s;
         private void writeFile(File file, String s)
              FileOutputStream fos = null;
              BufferedOutputStream bos = null;
              DataOutputStream dos = null;
              try
                   fos = new FileOutputStream(file);
                   bos = new BufferedOutputStream(fos);
                   dos = new DataOutputStream(bos);
                   dos.writeChars(s);
                   fos.flush();
                   bos.flush();
                   dos.flush();
                   fos.close();
                   bos.close();
                   dos.close();
              catch(Exception e)
                   e.printStackTrace();
    }And if someone wants to test this servlet I can
    give a war package.
    Any advices?
    kari-matti

  • Execution of Coded UI scripts with least possible test execution time in Windows7 Operating system using Visual Studio Test Agent 2010 without VS2010 installed

    Hi All,
    We are trying to execute coded UI scripts without Visual Studio installed. We are using “Visual Studio Test Agent 2010” for executing coded UI scripts without VS2010 in Windows 7, it is working fine. Also we verified executing the same script with VS2010
    Premium, it works fine as well.
    Here the challenge we are facing is with the Test execution time.
    When we run the coded UI script with IE11-Windows 7 OS-Visual Studio 2010 Premium it takes
    3min 36sec to complete the execution whereas with IE11-Windows 7 OS-Visual Studio Test Agent 2010  it takes
    6min 40sec for the same script to execute (which is almost double the time it takes while executing using VS2010).
    My question is what may be the reason for this difference? and how we can reduce the test execution time when running from Test Agent 2010?
    Kindly let us know what is the best practice to execute the coded UI scripts with least test execution time in Windows 7 Operating system using Visual Studio Test Agent 2010 without VS2010
    installed.
    Looking forward for your positive response.
    Thanks in advance..!!

    Tina-Shi, Thanks for the information.
    As you mentioned, we tried to execute the coded UI test using Mstest.exe in command on VS2010 Premium and checked on the execution
    time, there was a slight difference.
    Please find below execution time.
    Using Mstest.exe in command on VS2010 Premium/Win7 – 3.47 minutes
    Using VS2010 Premium/Win7 – 3.53 minutes
    Using Test Agent/Win7 – 7.3 minutes
    Also, I closed all the other processes in Task manager before starting up the execution.
    Still , I am facing the same Issue. Could you please suggest any other way to reduce the scripting time of coded UI script execution
    through Test agent 2010.
    Looking forward for your earliest response.

  • Granting an admin rights to view and execute a task with user actions

    I am trying to grant an admin the rights to view and execute a new task that i have created from the search results and user actions applet.
    I have added an auth type to the authorization types configuration object with the following:
    <AuthType name="terminateUser" extends="TaskDefinition,TaskInstance,TaskTemplate"/>
    I created a new task and assigned it this auth type. I then created the new admin group and assigned the following permissions:
    <Permission type='terminateUser' rights='View'/>
    I then added this capability to the admin role to which the user has been assigned. This admin role also has the view user capability and has been assigned to the top level of this organization as a controlled organization.
    I also added the task to the user actions configuration so that the menu item appears in the context menu and on the find users page.
    The user can see all users but cannot see the new task. The only thing that is visible is the "view" menu item.
    I have other users that have lots more capabilites that can execute this task with no problems. I am wondering if the view user capability is the problem or is there some other capability that anyone knows of that I must add in order to allow this admin role to view and execute this task.
    Thanks,
    Ruth

    BTW, the answer is to restart the app server. Duh!
    Ruth

  • PL/SQL to execute exe file with parameters from DB

    Hi all,
    I have a bit of a problem.
    I am in need to write all Logon, Logoff and Logon fail data onto the Windows Application Log. To do this I already tried various solutions but with my configuration (Oracle EE 10.2.0.4 and Windows Server 2003 R2 X64) the only possible solution (apparently) is the following.
    I create a Table with the info I need:
    CREATE TABLE logonaudittable
    event VARCHAR2(15),
    sid NUMBER,
    serial# NUMBER,
    orario DATE,
    username VARCHAR2(30),
    osuserid VARCHAR2(30),
    machinename VARCHAR2(64)
    I create a trigger for Logon Data, one for Logoff and one for Logon Fail:
    LOGON trigger.
    CREATE OR REPLACE TRIGGER logonauditing AFTER LOGON ON database
    DECLARE
    machinename VARCHAR2(64);
    osuserid VARCHAR2(30);
    v_sid NUMBER(10);
    v_serial NUMBER(10);
    CURSOR c1 IS
    SELECT sid, serial#, osuser, machine
    FROM v$session WHERE audsid = userenv('sessionid');
    BEGIN
    OPEN c1;
    FETCH c1 INTO v_sid, v_serial, osuserid, machinename;
    INSERT INTO logonaudittable VALUES ( 'LOGON', v_sid, v_serial, sysdate,
    user, osuserid, machinename );
    CLOSE c1;
    END;
    LOGOFF trigger
    CREATE OR REPLACE TRIGGER logoffauditing
    BEFORE LOGOFF ON database
    DECLARE
    machinename VARCHAR2(64);
    osuserid VARCHAR2(30);
    v_sid NUMBER(10);
    v_serial NUMBER(10);
    CURSOR c1 IS
    SELECT sid, serial#, osuser, machine
    FROM v$session WHERE audsid = userenv('sessionid');
    BEGIN
    OPEN c1;
    FETCH c1 INTO v_sid, v_serial, osuserid, machinename;
    INSERT INTO logonaudittable VALUES ( 'LOGOFF', v_sid, v_serial, sysdate,
    user, osuserid, machinename );
    CLOSE c1;
    END;
    LOGON FAIL trigger
    CREATE OR REPLACE TRIGGER logonfailauditing
    AFTER SERVERERROR ON database
    DECLARE
    machinename VARCHAR2(64);
    osuserid VARCHAR2(30);
    v_sid NUMBER(10);
    v_serial NUMBER(10);
    CURSOR c1 IS
    SELECT sid, serial#, osuser, machine
    FROM v$session WHERE audsid = userenv('sessionid');
    BEGIN
    IF (IS_SERVERERROR(1017)) THEN
    OPEN c1;
    FETCH c1 INTO v_sid, v_serial, osuserid, machinename;
    INSERT INTO logonaudittable VALUES ( 'FAILLOGON', v_sid, v_serial, sysdate,
    user, osuserid, machinename );
    CLOSE c1;
    END IF;
    END;
    The I create a trigger that starts every time something is written on the table.
    This trigger needs to start an EXE file that writes the latest data written on the table into the Windows Application Log.
    So I need a trigger that executes my WRITELOG.EXE file adding the parameters. For example:
    Execute WRITELOG.EXE event sid orario username
    So my program will write a Log in Windows with this data:
    Event: LOGON
    Sid: 2938473
    Orario: 12/12/2011 11:45:32
    Username: Scott
    And so on.
    I already have the program that does this, I need to execute the program with the right data directly from trigger or from a procedure executed by my trigger.
    Hope I've been clear and REALLY hope someone can help me!!!
    Thank you all!

    The java and PL/SQL you need to set up is in the very first response in the link. (I don't have a windows Oracle DB DBMS_JAVA to try it myself). Change the UNIX command '/usr/bin/ls' to your Windows command 'c:\yourdirectory\FILE.EXE'. Assuming you created everything and set permissions as Tom describes (later in the thread), your PL/SQL call in your trigger might look something like this:
    CREATE OR REPLACE TRIGGER logonauditing AFTER LOGON ON database
    DECLARE
    machinename VARCHAR2(64);
    osuserid VARCHAR2(30);
    v_sid NUMBER(10);
    v_serial NUMBER(10);
    CURSOR c1 IS
    SELECT sid, serial#, osuser, machine
    FROM v$session WHERE audsid = userenv('sessionid');
    BEGIN
    OPEN c1;
    FETCH c1 INTO v_sid, v_serial, osuserid, machinename;
    INSERT INTO logonaudittable VALUES ( 'LOGON', v_sid, v_serial, sysdate,
    user, osuserid, machinename );
    RUN_CMD('c:\yourdirectory\FILE.EXE LOGON '||v_sid||' '||v_serial||' '||to_char(sysdate,'MM/DD/YYYY')||' '||user||' '||osuserid||' '||machinename);
    CLOSE c1;
    END;
    Since you want to log what the trigger is writing to the table, you can call the executable with the same information you are writing, instead of writing then reading it back out again.

  • Auth Error in BW while executing a query with Company hierarchy

    Hi All,
    I have an issue in BW Reporting auth objects.. Hope to get resolved here.
    We are using BI 7.0. However We  are still using the Reporting auth objects for fiield level security. We are having a problem while executing a query with company code hierarchy ,which is built on a multiprovider.
    The Background is as below
    Multiprovider: ZM_CD01 with 5 infocubes
    Query: Has 0COMP_CODE as free characteristics with display hierarchy for Japan (Node APSC_012 is fixed value)
    Node APSC_012 has 4070,4076,407A,408A,9830 company code values under it.
    Reporting Auth Objects:
    Z0COMPCODE: (for flat values)
    4070,4076,407A,408A,407M,407P,8236, :
    ZHCOMPCODE: (For tree structure)
    4070,4076,407A,408A,407M,407P,8080, :
    APSC_MGMT_HIER (Nodes: APSC_012,APSC019)
    Both the reporting authorization objects are checked for multi provider ZM_CD01 in RSSM
    While executing the query the following Auth error is received.
    You do not have authorization to read object  "Z0COMPCODE" authorization on '0COMP_CODE'
    When I change the values for Z0COMPCODE to * it works fine. No Auth error.
    Please help me resolve this issue. It is very critical now as the user needs to execute some important reports.
    Thanks in Advance.
    Ramkumar C

    Hi Chandra,
    Try the following:
    1. Go to tcode RSSM
    2. Enter the cube ZM_CD01 (all the other cubes) then click change.
    3. Afterwards, u201Cunchecku201D ALL Authorization Objects under this cube. (Repeate the same for all the cubes)
    4. Click Save.
    This will resolve the issue.
    Rgds,
    Raghu

  • No issues, but curious..why do I always get permissions repaired when I click on 'repair permissions in Disk Utility......it usually has to do with core permissions and it's happened since i got this MacBook Pro in 3/11..it continues with 10.7

    No issues, but curious..why do I always get permissions repaired when I click on 'repair permissions' in Disk Utility ??......it usually has to do with core permissions and it's happened since i got this MacBook Pro in 3/11..I'll try this every 2/3 wks and always get repairs.....yet, I don't really have issues....it's been weird.......it continues with 10.7 and the update to 10.7.1.. a sample:
    Permissions differ on “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/da.lproj/UIAgent.nib”; should be -rw-r--r-- ; they are drw-r--r-- .
    Repaired “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Rem ote Desktop Message.app/Contents/Resources/da.lproj/UIAgent.nib”
    Permissions differ on “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/da.lproj/MainMenu.nib”; should be -rw-r--r-- ; they are drw-r--r-- .
    Repaired “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreen.app/Contents/Resources/da.lproj/MainMenu.nib”
    Permissions differ on “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreenLeopard386.app/Contents/Resources/da.lproj/MainMenu.nib”; should be -rw-r--r-- ; they are drw-r--r-- .
    Repaired “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Su pport/LockScreenLeopard386.app/Contents/Resources/da.lproj/MainMenu.nib”
    Group differs on “Library/Preferences/com.apple.alf.plist”; should be 80; group is 0.
    Repaired “Library/Preferences/com.apple.alf.plist”
    Warning: SUID file “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAg ent” has been modified and will not be repaired.

    As described in this article, don't worry about it:
    http://support.apple.com/kb/TS1448?viewlocale=en_US

  • Execute SQL Task with Parameter - from DB2 to SQL Server

    I am pulling data from DB2 to SQL Server.
    1st Execute SQL task runs the following against DB2:
    SELECT TIMESTAMP(CHAR(CURRENT_DATE - (DAY(CURRENT_DATE)-1) DAYS - 1 MONTH)) as START_MONTH
    FROM SYSIBM.SYSDUMMY1;
    I'm storing it as a Result Set.
    Next I have a Data Flow Task.  This pulls data from DB2 where the date matches the parameter.
    FROM SCHEMA.TABLE t
    WHERE DATE_TIME_COLUMN= ?
    This works fine. Guessing, because the parameter source is DB2 and the Data Flow source is DB2.
    The problem is, I want to remove existing data for the same date in the SQL table.  IE, if I'm pulling March 2014 data from DB2, I want to be sure there is no March 2014 data in the SQL table.  The main use is for re-runs.
    So, I added another Execute SQL task after the first one that assigns the variable, and before the Data Flow Task. This runs the following statement against SQL Server:
    DELETE FROM
    database.dbo.table
    WHERE DATE_TIME_FIELD >= ?
    The package fails at the new Execute SQL Task with the following error message:
    Error: 0xC002F210 at Execute SQL Task, Execute SQL Task: Executing the query "DELETE FROM
    SBO.dbo.tblHE_MSP_FEE_BUCKETS
    WHERE T..." failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established
    correctly.
    Task failed: Execute SQL Task
    SSIS package "Load_MSP_Fee_Buckets_SQL.dtsx" finished: Success.
    The program '[14240] Load_MSP_Fee_Buckets_SQL.dtsx: DTS' has exited with code 0 (0x0).
    I am assuming this is something to do with the Parameter source being DB2, and trying to use against SQL?
    Any suggestions on how to make this work??
    Thanks,
    -Al H

    Parameter name is unrecognized
    is the key, how come DB2 is related if it runs against SQL Server
    What I think is happening you do not use the OLEDB connection to SQL Server.
    Likewise, if it is ADO then the query needs to be
    DELETE FROM
    database.dbo.table
    WHERE DATE_TIME_FIELD >= @MyDate
    Arthur My Blog

  • How to execute a transaction with a different user from the logged user?

    Hello Experts!
    I'm trying to find out a solution about this scenario: our users need to release a Purchase Order (ME28) and/or a Service Entry Sheet (ML85) in SAP from a WEB based application through TIBCO, but the requirement is to execute this operation with the same SAP User name of the user (with his authorization) and not with the TIBCO user that is logged to SAP.
    Is there someone that could suggest me a real time solution and how to develop it? I really appreciate your contribute and I'm at your disposal for any further information.
    Thank you very much!
    Alessandro

    Hi Rob!
    Thank you for your help, but I can't apply this solution, because we need to execute the transaction with a specific user name and not a generic user, besides our user have different authorization, for example the user Mr. Rossi can release only his Purchase Order but not the PO of another user Mr. Bianchi. Moreover we need to see the PO released/modified from a specif user name. So this is our constraint.
    Bye Ale.

  • ADF how can i execute a query with parameters when the page renders

    hi
    i am using ADF web 11g
    i need to execute a query with parameters when the page renders
    thanks

    hello,
    I'm a fan of Java code, I really am.
    But when you use ADF, you decided to move to a more declarative environment.
    So why not do it declarative, the adf way?
    In your pagedef insert a action binding.
    This can be anything, a call to the application module, a call on the iterator(Like executeWithparams, etc.)
    Create an invokeAction in your pagedef and set the condition.
    This example refreshes(Action 2 is execute query) the data.
    First the method binding:
        <action IterBinding="PersoonIterator" id="Execute" InstanceName="LSAppModuleDataControl.Persoon"
                DataControl="LSAppModuleDataControl" RequiresUpdateModel="true" Action="2"/>And the invoke action
        <invokeAction Binds="Execute" id="refreshData"/>This always refreshes the data on page entry, but anything is possible, you can set condictions for the invokeAction.
    -Anton
    PS Yes I know that pagedefs become backing beans in the end and yes that is Java code, but if you wanna play the ADF way, the goal is the reduction of Java code and the increased performance of declarative programming.

  • Xhtmlb: tabStrip - how to execut a page with flow logic

    Hello all, how do I execute a "page with flow logic" from a "tabStrip".  Currently I am using a "page fragment".  But I need to change to a "page with flow logic" becuase of a technical issue. 
    Is it possible to tell which tab was selected using event processing?  When I try, I am getting "illegal reference". 
    Here is a sample of my current code.
    <xhtmlb:tabStrip id            = "TABSTRIP"
                     viewState     = "EXPANDED"
                     viewStateMode = "COLLAPSED_EXPANDED"
                     tooltip       = "Choose tab" >
      <xhtmlb:tabStripItem name  = "Home"
                           title = "Home" >
        <%@include file="home.htm" %>
      </xhtmlb:tabStripItem>
      <xhtmlb:tabStripItem name  = "Medical"
                           title = "Medical" >
        <%@include file="medical.htm" %> 
      </xhtmlb:tabStripItem>
      <xhtmlb:tabStripItem name  = "Dental"
                           title = "Dental" >
        <%@include file="dental.htm" %>
      </xhtmlb:tabStripItem>
      <xhtmlb:tabStripItem name  = "Vision"
                           title = "Vision" >
        <%@include file="vision.htm" %>
      </xhtmlb:tabStripItem>
      <xhtmlb:tabStripItem name  = "FlxSpnd"
                           title = "Flexible Spending" >
        <%@include file="home.htm" %>
      </xhtmlb:tabStripItem>
      <xhtmlb:tabStripItem name  = "Other"
                           title = "Other" >
        <%@include file="home.htm" %>
      </xhtmlb:tabStripItem>
      <xhtmlb:tabStripItem name  = "RevSub"
                           title = "Review and Submit" >
        <%@include file="home.htm" %>
      </xhtmlb:tabStripItem>
    </xhtmlb:tabStrip>
    What would I replace the "page frament" with?
    Thanks in advance for your help, Troy

    Hi Troy,
      If i understood your requirement i think you need to move to other pages or views when the tabstrip items or clicked. If your requirement is the above one below is the explanation....
    In the layout you include a attribute  onSelect        = "mySelect" in the tag  xhtmlb:tabStrip.
    For event handling in the oninputprocessing you write the below code,
       CLASS CL_HTMLB_MANAGER DEFINITION LOAD.
    DATA: TABSTRIP TYPE REF TO CL_XHTMLB_TABSTRIP.
    Reading Data from Toolbar
    TABSTRIP ?= CL_HTMLB_MANAGER=>GET_DATA( REQUEST = REQUEST
                                            NAME    = 'xhtmlb:tabstrip'
                                            ID      = 'tb3' ).
    Optional: test that this is an event from HTMLB library.
    IF EVENT_ID = CL_HTMLB_MANAGER=>EVENT_ID.
    Scenario 1: Read event from manager.
      DATA: EVENT TYPE REF TO IF_HTMLB_DATA.
      EVENT = CL_HTMLB_MANAGER=>GET_EVENT_EX( RUNTIME->SERVER->REQUEST ).
    DATA: request_event TYPE REF TO cl_xhtmlb_event.
    request_event ?= event.
    IF EVENT IS NOT INITIAL AND EVENT->EVENT_NAME =
    CL_XHTMLB_TABSTRIP=>CO_EVENT_NAME.
    *---here you can handle the event... 
    ENDIF.
    ENDIF.
    Regards,
    Azaz Ali.

  • [solved] findutils - problem with file permissions

    Hey,
    I tried running makepkg -c for an updated PKGBUILD of a package I maintain in the AUR (gretl), and it seemed fine but then hit:
    ==> Tidying install...
    -> Purging other files...
    -> Compressing man and info pages...
    -> Stripping debugging symbols from binaries and libraries...
    -> Removing libtool .la files...
    -> Removing empty directories...
    find: invalid predicate `-delete'
    I'd had some other strange errors with find over the past few weeks or so (my last -Syu was after this month's catalyst driver came out with support for the current kernel) but had shrugged them off. This error made me decide to try reinstalling findutils, and it gave the error:
    error: cannot remove file 'usr/bin/find': Operation not permitted
    a bit stupidly, I tried pacman -Rd then -S findutils, and now I get
    error: failed to commit transaction (conflicting files)
    findutils: /usr/bin/find exists in filesystem
    Errors occurred, no packages were upgraded.
    missing dependency for ca-certificates : findutils
    missing dependency for initscripts : findutils
    missing dependency for mkinitcpio : findutils
    missing dependency for texinfo : findutils
    ls -als /usr/bin | grep find     gives:
    12 -rwxr-xr-x 1 root root 10636 Mar 25 16:24 deepfind
    64 -rwxr-xr-x 1 root root 59200 May 9 01:58 efinder
    64 -rwxr-xr-x 1 500 500 59536 Jun 16 14:49 find
    and rm, mv, chmod, chown etc on /usr/bin/find as root, and from livecd, all also come back with "Operation not permitted".
    find seems to work fine for a few simple uses I've just tried.. but the last time I ran makepkg -c without the error was before the last system upgrade, so I'm guessing find didn't upgrade properly then due to whatever is wrong with the permissions, leading to the other errors.
    Anyway, I guess the question is, can I do anything to get rid of /usr/bin/find and reinstall findutils? don't mind so much about missing dependencies as I tend not to upgrade that often, but find not doing what it should is a bit of a pain.
    Last edited by manehi (2009-08-30 08:52:20)

    mm I tried all that, and no luck. though trying adduser 500 did give me a helpful reminder that usernames can't start with numbers...
    anyway, it's not a huge deal atm, and I can always clean reinstall the / partition if things really break. Thanks all the same.
    PS:
    huh, just had a thought - I remember how I used to get annoyed how mounting partitions using ext2ifs in windows didn't respect permissions properly. and now I almost wish I had a windows partition / that this wasn't a laptop hard drive...
    Last edited by manehi (2009-08-30 00:31:13)

  • Firefox allows Java Applet with elevated permissions

    I ended up with a virus on Friday when I selected "View" on an HTML attachment from the GMail web interface. The attachment started up java and proceeded to install the malware "Desktop Security 2010" and make changes to my system startup. I'm wondering how this happened and how to prevent it. My java security settings (Java Control Panel->Security->Certificates->Trusted Certificates) only lists Akamai Technologies and JavaFX as trusted certificates. Shouldn't that mean that I get prompted if any one else signs an applet that tries to run outside the sandbox? What else do I need to do to make sure that NO java applets run with elevated permissions?
    I've disabled java via an add-in in the meantime, but what do I need to do to secure my browser properly?
    == This happened ==
    Just once or twice
    == I selected "view" on a virus-infected email attachment in gmail

    Хорошо. Am now able to enter Cyrillic font into my applet. HOWEVER, another issue remains: After pressing enter to process input, new window opens as expected with correct information displaying in window EXCEPT for drop-down menu bar that should display in green square of open window. http://www.lesbaileyev.com/Project/RFvstem.html I will open another suport question for this new development.

  • Protection Domains with static permissions are improperly constructed

    I'm pretty new to the java security model, but this doesn't look right. It seems as though ProtectionDomains with static permissions have symantically different functionality than those that are constructed with the "variant" constructor(CodeSource, PermissionCollection, ClassLoader, Principal[]). The documentation enforces this idea "The only permissions granted to this domain are the ones specified; the current Policy will not be consulted". Why then are the ProtectionDomains reconstructed improperly in combine(ProtectionDomain[], ProtectionDomain[]) method of the javax.security.auth.SubjectDomainCombiner? The wrong constructor is being called.
    The reason the SubjectDomainCombiner is reconstructing these improperly is because it ownly uses the second form of the ProtectionDomain constructor. In my case the SubjectDomainCombiner is reconstructing a ProtectionDomain that was constructed with the first form. Basically this means that the staticPermissions variable in my ProtectionDomain changes from true to false. Then when it's time to call the implies(Permission) method it consults the current policy instead of ONLY using static permissions.
    This is causing havic with my custom classloader because I don't want the security manager checking the current Policy for permissions. I only want the ProtectionDomain's static permissions. Bug 4687166 also deals with combiners improperly constructing ProtectionDomains, but it is NOT a duplicate.
    Now this means I'm going to have to extend the Policy class to get around this problem. Something isn't right, if it's me, please let me know.

    interesting - if i follow what you're saying, you expect SubjectDomainCombiner to inspect the input ProtectionDomains. if one was constructed with "static" permissions, do you expect SubjectDomainCombiner to create a new ProtectionDomain with the additional Principal info, while retaining the static permissions?
    or do you expect SubjectDomainCombiner to just leave that ProtectionDomain alone - in particular, do not update it with Principal info since it won't affect the permissions granted to that domain anyways?
    either is an interesting change to contemplate, and is a technical possibility for SubjectDomainCombiner (since it is J2SE code). however, to come up with a true solution available to any custom DomainCombiner would probably require public API changes to ProtectionDomain.

  • Execute a procedure with a list of array in sql server 2008

    HI all,
    I have a procedure which has a list of values passed as an array . How can i execute my procedure with array list? how to implement this?Please help me.
    Thanks in advance
    Deepa

    Hi Deepa,
    basically Microsoft SQL Server does not support arrays as data types for procedures. What you can do is creating a type which represents a table definition. This type can than be used in a procedure as the following demo will show:
    The first script creates the environment which will be used for the execution
    -- 1. create the table as a type in the database
    CREATE TYPE OrderItems AS TABLE
    ItemId int PRIMARY KEY CLUSTERED
    GO
    -- 2. demo table for demonstration of results
    CREATE TABLE dbo.CustomerOrders
    Id int NOT NULL IDENTITY (1, 1) PRIMARY KEY CLUSTERED,
    CustomerId int NOT NULL,
    ItemId int
    GO
    -- 3. Insert a few records in demo table
    INSERT INTO dbo.CustomerOrders
    (CustomerId, ItemId)
    VALUES
    (1, 1),
    (2, 1),
    (3, 3),
    (1, 3);
    GO
    -- 4. Create the procedure which accepts the table variable
    CREATE PROC dbo.OrderedItemsList
    @Orders AS OrderItems READONLY
    AS
    SET NOCOUNT ON;
    SELECT o.*
    FROM dbo.CustomerOrders AS O INNER JOIN @Orders AS T_O
    ON (o.ItemId = T_O.ItemId);
    SET NOCOUNT OFF;
    GO
    The above script creates the table data type and a demo table with a few demo data. The procedure will accept the table data type as parameter. Keep in mind that table variable parameters have to be READONLY as parameter for procedures!
    The second script demonstrates the usage of the above scenario
    When the environment has been created the usage is a very simple one as you can see from the next script...
    -- 1. Fill the variable table with item ids
    DECLARE @o AS OrderItems;
    INSERT INTO @o (ItemId)
    VALUES
    (1), (3);
    -- 2. Get the list of customers who bought these items
    EXEC dbo.OrderedItemsList @Orders = @o;
    MCM - SQL Server 2008
    MCSE - SQL Server 2012
    db Berater GmbH
    SQL Server Blog (german only)

Maybe you are looking for

  • Express 34 slot in the MacBook pro ?

    Hello all, I wanted to find if I do have an express 34 slot or els in my MacBook Pro that permits me to add on a FW800 card to the mac. Thanks for your attention !

  • JMS Adapter - Queue Message Loss

    Hi Folks, I am working on MQ - to - File Scenario, working fine. But some Cases message is fail in SMQ1 & SMQ2, I am not able to re-process that message because of that messages are System Error. So My Problem was, Once JMS Adapter is pick the Data f

  • User editable forms in Acrobat........that can be saved in Reader?

    Howdy Y'all I have a client that needs a contract made up that can be emailed to clients for them to "fill in" and able to be saved to send back with all of the fields filled out. The original document was made in Word and I just exported it to a PDF

  • For mobile phone

    I hv problm in my Lumia 520 mobile

  • Error message -1073807298 when connecting through TCP

    I get the error code -1073807298 when I try to connect to a TCP raw socket VISA resource, the weirdest thing is that I actually can read the result of the queries I make. I fixed the problem reading one byte at a time but this is very inefficient (it