Sqlagent Proxy Permissions For Ssis - Just On The App Databases Or On The Pkg Also?
Apr 15, 2008
do sqlagent service account proxies need more than just permissions on the app databases being read from and written to in the executing ssis package?
it looks like there are some prep steps when a pkg is going to be run. In my case, the pkg comes from msdb which has it's own security roles. So will my proxies need "datareader" permission on msdb...in addition to datareader and datawriter permissions on the other databases the pkg reads/writes from/to?
are there other permissions/roles normally important to proxies used in getting ssis pkgs to run? Where are they set?
View 7 Replies
ADVERTISEMENT
Oct 4, 2007
Re: SQL Server 2005
Does the xp_cmdshell proxy account need admin-level permissions on the server?
The reason I ask this is because I keep getting "Access is Denied" errors when trying to run this command as a non-admin:
master..xp_cmdshell dtexec 'some package'
The 'some package' has an "execute process task" which calls a batch file on the server.
If the proxy account is NOT a local admin, the "execute process tasks" fails with an "Access is Denied" error.
If the proxy account is a local admin, it executes fine.
We have given "Everyone" FULL CONTROL of all the folders that are affected by the batch file, and it still does not work.
I am out of ideas at this point. It just does not work unless it's an admin.
Are we missing something here?
View 7 Replies
View Related
May 13, 2008
This is a fun one. I have a job that runs a SSIS package. It has some variables that I set a runtime. How can I programmatically change the values for these variables using SMO? I can get to the step in the job using VB but I can't find a way to programmatically change the value of the parameters of the job. The code loops through every property of the SSIS step. There's a command string but that's an ugly beast to code against. Any help is appreciated.
With oStep
Console.Write("Name: " + .Name + vbTab)
Console.Write("Proxy Account: " + .ProxyName + vbTab)
Console.Write("Type: " + .SubSystem.ToString + vbTab)
Console.WriteLine("Urn to point to job: " + .Urn.ToString)
iProp = .Properties.GetEnumerator
While iProp.MoveNext
Console.WriteLine("Property Name/Value: " + Convert.ToString(iProp.Current))
End While
End With
View 3 Replies
View Related
Jun 2, 2006
Hello-
I've an SSIS packeage that genrates offline cube (.cub) files via an MDX query run against an Analysis Services cube. When I run the package through the Management Studio all runs fine and the cube files are generated and can be used by excel.
However when I run this package through a SQL Agent job the files are generated and the job completes successfully , but when I try to open them in Excel they appear to be corrupted and I the Data Link properties screen comes up. In looking at the files the ones generated by the SQL Agent are also a different size than those generated from running the package directly
Has anyone else seen this kind of behavior? As an FYI I'm adding the files to the SQL Agent step from the SSIS Package Store.
Thanks,
Tristan
View 3 Replies
View Related
Apr 13, 2008
I just started playing with sqlagent and am finding that viewing a specific message from an ssis step is cumbersome when other entries are also in the log. Exporting seems only able to export all history entries. Viewing right in the log viewer leads to a series of boundary expansions and right scrolls that dont seem convenient for quick identification of a problem in a medium sized ssis message. Right clicking on the message in the viewer seems like it is preparing the message for possible copy but it seems to end there. I'm already familiar with the different levels of verbosity available in the command line. Dont see anything useful on the web.
Is there a user friendly way to copy the contents of a specific message for perhaps pasting to notepad , so that problem identification is facilitated? Is there a not so user friendly way available, one taht doest involve 1st exporting the entire log?
View 7 Replies
View Related
May 15, 2007
I have read all the posts regarding this error, but non-solve my problem as I had already addressed them.
I am setting up Merge Replication via the Web and I get this error when i try to sync. Let me give you some background.
I wrote a small windows test app to test merge replication, in which i am using RMO to accomplish the replication. This works. It syncs every time. I then copied the "sync" code from the winform application and created a Windows Service in which i placed "sync" code. The sync code did not change other than adding the additional following four lines:
_mergeAgent.InternetUrl = _internetURL;
_mergeAgent.InternetLogin = _internetLogin;
_mergeAgent.InternetPassword = _internetPassword;
_mergeAgent.InternetTimeout = _internetTimout;
where the internet url is https://ipaddress/virtualdirectory/replisapi.dll
I have been working with this for a while now trying to figure out why this works (on the same machine) in a winforms app but not through the web (via a windows service).
Any insight would be greatly appreciated.
Thanks...
View 3 Replies
View Related
Apr 28, 2006
Hi
Using SQL Server 2005 with SP1, I have successfully managed to schedule jobs to run SSIS packages. They connect to another SQLServer 2000 box, using SQLOLEDB connection manager, to extract data and import it into SQL 2005. The protection level for the packages is Server storage so that the job is run under the SQL Agent account. This is a specific domain account so that it can access other servers.
However, using the same setup for a scheduled job to to run an SSIS package which connects to another SQL Server 2000 box with connection manager SQL OLEDB, I get the following error message:
The AcquireConnection method call to the connection manager "xxx" failed with error code 0xC0202009.
As the both the successful and failed jobs seem to have been set up in the same way with the same protection levels and are both run under a domain sql agent account, is there anything else I should be checking that I don't know about?
Any help is much appreciated!
View 3 Replies
View Related
Sep 5, 2007
I have a SSIS package that reads from a remote directory on another server that is on the same domain. When I run the package under my domain user, it runs fine, however when I try to start the SQL job which has the package as the first step, the job fails. I created a proxy account with domain user credentials, set it to be active under "SSIS Package Execution" and set the SSIS package to run as the proxy account, but I get the following error message:
"Unable to start execution of step 1 (reason: Could not get proxy data for proxy_id = 2). The step failed."
I'm not sure what to do at this point, so any help would be appreciated.
View 8 Replies
View Related
May 29, 2008
I'm attempting to run a ssis package via sql server agent.
The package and the DB are on a cluster.
The package runs fine when 'Sql Server Agent' is the run-as.
When I try and use a proxy to run the package, it fails with this error:
Date 5/28/2008 6:21:54 PM
Log SQL Agent (Current - 5/28/2008 6:21:00 PM)
Message
[136] Job CorpFoo New reported: The process could not be created for step 1 of job 0xDAE2A53F27943D4CA412A0D177CAA546 (reason: A required privilege is not held by the client)
I've:
Create Credential to be used by proxy
Create Proxy
Give Permissions to Proxy in SQL Server
Give Permissions to Proxy at the Server for SQL Agent Batch Run
Give Permissions to Proxy at the Server to Connect to SSIS
EXEC dbo.sp_grant_login_to_proxy
@login_name = N'Myapplication_DBO',
@proxy_name = N'Myapplication_Batch_PROXY' ;
EXEC dbo.sp_grant_proxy_to_subsystem
@proxy_name = 'Myapplication_Batch_PROXY',
@subsystem_id = 11;
I've tried a number of things, including adding the sql user (who has access to the proxy) as sys admin on SQL and the OS. That didn't help either.
Has anyone experienced this error? Is there any way to further diagnose this (completely unhelpful) error message?
Thanks,
Steve.
View 2 Replies
View Related
Feb 13, 2008
Hello!
I have SSIS Package that needs special permissions in network. I want to schedule SSIS running using SQL Agent. I don't want to other Jobs starts with special permissions. So, I decided to use proxy account to impersonate SSIS starting process by account with those permissions. I've perfomed following steps:
1. Create Login for the future proxy account and add it to sysadmins role.
2. Create Credential with account name and password information.
3. Create proxy account and give to it rights to run SSIS, CmdExec and ActiveX create.
4. Set Run as for step that starts my package to this proxy
5. Start my job.
and I receive error "Process couldnot be created for step 1 job xxx. Reason: 1314"
SQL Agent account and proxy accounts has also administrators rights on SQL Server computer and rights to login as service.
When I change step configuration to run as SQL Agent account job completes succesfull.
What do I do wrong?
Thx,
Olga
View 8 Replies
View Related
Mar 6, 2008
I had a question about proxy account for ssis.
Is it necessary to set up credential with windows account for proxy account so that ssis package can be setup as a job in agent ?
without proxy account ssis package is unable to run under agent as a job ..but..
does identity in credential for proxy need to be windows account ?
View 4 Replies
View Related
May 29, 2008
Hi There
We executed windows scheduled batch failes that execute as DOMAINuser1 to dtsexec packages.
I moved these packages to run in sql jobs.
The agent runs as local system. In order to get the packages to run since they are encryoted with DOMAINuser1 key.
I created a DOMAINuser1 credential and a proxy.
I execute the SSIS package job steps under this proxy.
One day it all works the next day they fail randomly with the "unable to decrypt with user key" error.
I am very familiar with this error, however it makes no sense, thses packges are not being touched, no one is altering them and perhaps saving them with different user keys. They are all encrypted with the DOMAINuser1 key. One day everything works the next day they fail.
A master package will run and in the middle of executing other package it suddenly gets this error, like the proxy suddenly stops working.
I have found nothing in the event logs?
Any ideas ?
View 6 Replies
View Related
Dec 7, 2006
Hello,
I have a problem running a Package stored in the msdb datatabase (The
Database Engine is configured as a 1 node cluster) using a SQL Job that uses
Creadential/Proxy
Every time I try to run the SQL Job, it fails with the following error
message:
Unable to
start execution of step 1 (reason: Error authenticating proxy
MydomainMyaccount, system error: Logon failure: unknown user name or bad
password.). The step failed.".
The package runs perfectly if I run it logged as MydomainMyaccount ussing
DTExec.exe from the command line. if I run the sql job as "SQL Agent Service
Account" instead of using a proxy, it works great, but if I use the same
account as a credential, the sql job fails.
In other offices I have the same scenario in a non-cluster environment
running without any problems, (Also one with a 2 node cluster)
I am using Windows 2003 with SP1 and SQL 2005 SS with SP1 (build 2056)
Any idea?
Thanks in Advance Javier VillegasMediterranean Shipping Companyjvillegas@msc.us
View 9 Replies
View Related
Jul 21, 2006
My proxy class returns web service responses well if I use it in a C# code.
I compile it with CSC and put it in GAC to use it with SSIS.
Then I get web service response with some field values populated with "Exception of type :{System.InvalidOperationException "' occured.
Here is the part of web service response received by the C# program:
Name
Value
Type
mainAddress
{Address}
Address
city
Metuchen
string
cityField
Metuchen
string
country
USA
Country
countryField
USA
Country
state
NEW_JERSEY
State
stateField
NEW_JERSEY
State
Here is the same object returned by compiled dll used in SSIS:
mainAddress
{BrokerConnectServiceV1.Address}
BrokerConnectServiceV1.Address
city
Metuchen
String
country
{System.Nullable(Of BrokerConnectServiceV1.Country)}
System.Nullable(Of BrokerConnectServiceV1.Country)
HasValue
FALSE
Boolean
Value
Exception of type: '{System.InvalidOperationException}' occurred.
BrokerConnectServiceV1.Country
Data
{System.Collections.ListDictionaryInternal}
HelpLink
Nothing
InnerException
Nothing
Message
Nullable object must have a value.
Source
mscorlib
StackTrace
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
TargetSite
{System.Reflection.RuntimeMethodInfo}
state
{System.Nullable(Of BrokerConnectServiceV1.State)}
System.Nullable(Of BrokerConnectServiceV1.State)
HasValue
FALSE
Boolean
Value
Exception of type: '{System.InvalidOperationException}' occurred.
BrokerConnectServiceV1.State
Below is another posting by my associate on the same issue :
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=536615&SiteID=1
Any help is appreciated....
View 11 Replies
View Related
Jun 16, 2015
I running SSIS package job without sql agent , it is working fine.when i am running through sql agent not running.
created Proxy accountÂ
job failed and give above error.
Server is cluster and taking data from desktop.
server is in one domain and desktop in another domain.
View 3 Replies
View Related
Oct 18, 2001
I have an environment where I would like to grant the ability to perform certain functions to specific users for all databases on one of my SQL Servers. Specifically, I want to allow someone to alter table structures on the server, without having the ability to modify data within any databases on the server and without having the ability to create new databases on the server. Is this possible, and if so, how?
View 2 Replies
View Related
Oct 26, 2007
We have several servers running SQL Server 2005. Each of these were upgraded from SQL Server 2000. Each server has about 50 databases on it. Each database has a table with the same name, containing login information to the database that the table resides in.
We have a VB 6.0 application that allows our Help Desk to do a SELECT on the table that contains login information. All it does is a SELECT; no UPDATEs, DELETEs, INSERTs, or DDL operations are performed by this application. The application logs into the databases using a Security Group login (let's call it MyGroup). Each member of the Help Desk team is a member of MyGroup.
About twice a month, the MyGroup security group loses SELECT permissions on all of the databases on a server. The server affected usually is different each time, but sometimes the same server will be affected two times in a row.
So far, we just run a script to update the SELECT permissions on the table in each of the databases, and this takes care of the problem (for now). But the problem seems to be recurring regularly.
What would make the server lose all permissions for a particular security group? The other logins continue to work fine. Only this one security group seems to be affected.
I just can't figure this one out! Help, please!
Nancy
View 4 Replies
View Related
Jan 19, 2001
Hello together,
can anybody help me. I'm looking for an easy way to grant permissions to a user in all user databases. I already have a script which grants permission to all views and userdefined tables within one database, but since I have to run it in about 100 databases it's still quite timeconsuming.
Is there a way to execute that script in all user databases at once ???
Markus
View 2 Replies
View Related
Sep 18, 2007
Hi all,
I have a problem while i create a proxy account.The situation is like this...There is a user who has an login in to the server.He has a stored procedure which calls some on the SSIS packages and XP_cmdshell...so this stored procedure basically load some data in to the tables .So for the login in order to execute the stored procedure as he is not a Sys admin I have created a proxy account in my account as Iam an SA and then in the proxies and in principals I selected his login name and this way I have created a credential and a proxy account.
Now the problem is if he logins with his id and password and try to execute the stored procedure it gives an error message
Server: Msg 15153, Level 16, State 1, Procedure xp_cmdshell, Line 1
The xp_cmdshell proxy account information cannot be retrieved or is invalid. Verify that the '##xp_cmdshell_proxy_account##' credential exists and contains valid information.
....so this mean the login is not able to see the proxy account.So what I did is I created a job and then in the job owner tab I have selected his login and then created a step with the type operating system (CmdExec) as I need to just execute the stored procedure and used the proxy account that I have created.
so I gave the command -- exec <stored procedure> --.
But this job fails and gives the error message as
[298] SQLServer Error: 536, Invalid length parameter passed to the SUBSTRING function. [SQLSTATE 42000]....
So now ....first My question is am I doing in a right way....if its right then why Iam not able to execute the stored procedure.
If there is any other way through which I can execute the stored procedure using a proxy account for the logins who are not sys admins....please do let me know.....
Thanks
Raja.V
View 2 Replies
View Related
Feb 11, 2005
Hi folks, i've an instance with many userdatabases. i want to use SP_HELPUSER to output all database users and roles defined to em. how come i do this through a script to view permissions in all databases. I couldn't use (USE database ) in a loop.
Howdy!
View 3 Replies
View Related
Aug 24, 2007
I am having a problem with permissions using Windows groups. I have a database (database1) that has permissions granted via Windows groups. Two groups (group1 and group2) are members of the db_datareader role in database1, and this work fine. Do to the number of tables that get created during our work, using db_datareader is the easiest way to keep up with permissions without creating a maintenance problem. Now I have a table that I want to add to this database, but I only want group2 to have select permission on this one table which is a problem because group1 has the db_datareader role. So I thought I could create a view in this database to the restricted table that I put in database2. Then in database2 I only added group2 as a user with the permission to select from this table. Unfortunately the group membership does not seem to get interpretted correctly in database2 and no one can successfult select from the view in database1.
In other words, user1 who belongs to group1 connects to database1 and cannot select from the restricted view -- this is what I would expect. However, when user2 who belongs to group2 connects to database1 they also cannot select from the restricted view -- not the behvior I would expect. Now, if I make user2 a user in database2 with select on the restricted table then user2 can connect to database1 and successfuly get data from the restricted view. So it looks like the fact that user2 belongs to group2 is never passed to database2 via the select from the view on database1. Is this indeed the way that Windows group security is working or is meant to work in SQL Server?
I realize I could solve this simplified version of the problem by creating my own role in database1 for group1 etc., but I am trying to solve a bigger problem in our environment that has hundreds of databases across numerous servers.
Thanks
Rob
View 4 Replies
View Related
Feb 21, 2006
HiI have two databases: Customers and Operations. In Customers database I havemade a view based on a few tables from both Customers and Operations (leftjoin - customers without any operations). In the same database (Customers) Ihave created a stored procedure based on the view. Finally I'd like to giveto some users permission only to exec the stored procedure.Have I to add the users to Customers? If yes, please describe me how tolimit the users privileges only to execution the stored procedure (no rightsto open tables or view from Customers).Regards,GrzegorzPs. I had sent the post on microsoft.public.sqlserver.security, but I had noanswer.
View 5 Replies
View Related
May 23, 2007
Hi,
I had developed an ASP.NET application that runs SSIS packages, everything went well until i got the need to run a package that updates an Analysis Services Cube.
My package connection string to the cube looks like this:
"Data Source=<server>;Initial Catalog=<database>;Provider=MSOLAP.3;Integrated Security=SSPI;"
So my .net website has impersonation=true and my IIS denies anonymous and has integrated security also true.
I have packages that create files and those files are created correctly so permissions are passing just fine. The problem has arrived when i tried to process the cube. I got the following error:
"Either the user, NT AUTHORITYNETWORK SERVICE, does not have access to the <database> database, or the database does not exist. "
So if i have Integrated Security in all places why does it uses Network Service?
Best Regards,
Luis Simoes
View 16 Replies
View Related
Jul 18, 2006
I have a user who can't register the SSIS server in SMS. What permissions do I need to give him to allow this ... without making him sysadmin of course?
View 2 Replies
View Related
Jul 23, 2006
If one of our SSIS packages fails because of a communication problem with the backend, and the DBA is not available, my boss wants another individual (probably a senior programmer but not an "sa" type) to be able to re-run the job.
What is the "right" way to do this under SSIS sql 2005?
TIA,
barkingdog
View 1 Replies
View Related
Sep 6, 2007
I've been looking everywhere for a hint on how to tackle this, but can't get it to work.
I have an SSIS package that I am trying to run from SQL Server Agent.
I have been able to run it fine from the IDE, and from within the Integration Services system on my database server. However when I try to run the package via SQL Server Agent I get the following error:
"Executed as user: MyDomainSQLServer. The package execution failed. The step failed."
The login name is the SQL Server service account, which is a domain account on our domain. The package is set with EncryptSensitiveWithPassword and the password is supplied on the command line via the /DECRYPT flag.
I am thinking that maybe there is a permissions problem with the service account, but I can't find any detailed information about what actual permissions this account requires. I have tried expanding its permissions, but continue to get this error.
How should the MyDomainSQLServer account be configured?
View 4 Replies
View Related
Jul 23, 2007
All,
Here is my problem, its very simple, But I dont have a solution.
To run / import / what ever I else I forgot (?) SSIS in SQL SERVER, what are permissions I'll need.
So far I have developed everything in BIDS, when I try to migrate it to a sql server by using Import package in Integration Services I got the below error.
TITLE: Import Package
------------------------------
The EXECUTE permission was denied on the object 'sp_dts_listpackages', database 'msdb', schema 'dbo'. (Microsoft SQL Native Client)
------------------------------
ADDITIONAL INFORMATION:
The EXECUTE permission was denied on the object 'sp_dts_listpackages', database 'msdb', schema 'dbo'. (Microsoft SQL Native Client)
The error is very clear in itself, While I have raised a request for the execute permission of this stored procedure, i also like to know what kind of permissions I will need in MSDB to work with out any problems. So that I dont have to go to DBA for execute permission for each error I may get for this.Right now I dont have execute permission on any of the Stored Procs in MSDB.
If any body can show any pointers that would be help full.
View 4 Replies
View Related
Jun 27, 2006
We are trying to take advantage of the new Security Context for SSIS but users are unable to connect remotely to the SSIS Service unless they have been added to the Administrators Users Group on the server. I have tried adding them to Guests, Power Users, Remote Desktop Users, Users and SQLServer2005DTSUser$machine but the user is unable to connect.
The message received when the user is unable to connect is:
Cannot connect to 192.x.x.x
Additional Information
-> Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum)
-> Connect to SSIS Service on machine "192.x.x.x" failed:
Access is denied
What is the list of permissions and privileges that a user that does not belong to the server's Administrator group and have sysadmin server role, must have to allow them to create and run a package through SSIS.
View 6 Replies
View Related
Jan 31, 2008
What are the minimum permissions required to deploy an SSIS package to SQL Server? Here is what I have tried:
1. No additional permissions (i.e user created with no special permissions):
Deployment Error: No execute permissions on sp_put_package???
2. Dbowner role on msdb dataabase
Deployment Error: The SaveToSQLServer method has encountered OLE DB error code 0x80040E14 (Access to Integration Services package 'xxx' is denied.). The SQL statement that was issued has failed.
3. Sqladmin role on login: No errors
Most DBAs are reluctant to give sqladmin role to developers. Is there any way around this restriction?
View 4 Replies
View Related
Jul 20, 2007
Hello all,
I have an issue where the DBAs have informed my group that they need to get to a model where an SSIS package which presently needs Admin perms on a box in order to write to the Windows Application Log, no longer needs those perms to write to the log.
I am new to SSIS packages, though familiar with DTS packages (and ETL), so I'm wondering if their concerns (1) can be verified; and (2) if so, is there a better way to allow the package to write to the log without Admin perms (on the box). At the moment, the preference would be to do so without using .Net, in an effort to keep the implementation simple.
Scenario: A single package is scheduled to run at a predetermined time. Once complete it writes to the Windows Application Log.
Thanks in advance,
Henry
View 4 Replies
View Related
Dec 19, 2007
I have a problem where I have an SSIS package (SQL Server 2005) that won't run properly from SQL Server Agent, but it runs fine when kicked off manually from Integration Services -> Run Package or when run in debug from Visual Studio.
The first step in the package checks for the existance of a file via a script task. The script looks like this...
Code Block
Public Sub Main()
Dim TaskResult As Integer
Dim ImportFile As String = CStr(Dts.Variables("BaseDirectory").Value) + CStr(Dts.Variables("ImportDirectory").Value) + CStr(Dts.Variables("ImportFile").Value)
If Dir(ImportFile) = "" Then
Dts.TaskResult = Dts.Results.Failure
Else
Dts.TaskResult = Dts.Results.Success
End If
Return
End Sub
This script runs fine and the file is seen as expected when I run the package manually. But as a step in a SQL Server Agent job, it doesn't see the file.
The SQL Server Agent service is set to start up / log on as a Local System Account. I've also tried setting up a credential / proxy (using an account that I know can see and even move / rename the file) to run the job as but that didn't seem to help.
The package is being run from SQL Server (stored in MSDB) and is set to rely on SQL Server for sensitive information, so I don't think that's an issue; other packages are set up like this in terms of sensitive data and run fine.
Any ideas why my script can't "see" the file I'm looking at when it's kicked off by SQL Server agent? I've looked and looked...I can't seem to figure this out. I would really appreciate any help you might be able to offer up.
View 12 Replies
View Related
Jun 11, 2007
Hi All,
I have a requirement of migrating all databases from one server to another. I need to backup all SQL Server 2005 databases (both SQL and AS) with the exact replica copy. Also I need to migrate all the SSIS packages. Unfortunately I am not a Database/System Admin.
Is there any Script/Tool/Wizard Functionality that would help me doing this? I would be happy, even if you can help me reducing the parts of manual work in anyway you can think of, so please pour you thoughts in.
Thanking in Anticipation,
Jasraja
View 1 Replies
View Related
Nov 19, 2007
Hello,I am a beginner with SSIS. I have a scenario ...
I have source DB 'MySource' and a destination DB 'MyDestination'
I have created a SSIS to push data from my source data base to detination DB.
I have a scenario where in i have to push data from the source DB to the Destination DB , depending on a join condition for which the data is in Destination.
I would not be able to acces both the DBs while writing query to pick data from .. source DB. How do iproceed ..
let me give an exmple
Source DB:
Table1
---col1
--col2
--col3
--
--
--coln
Destination DB;
Table2:
--col1
--col2
--col3
--
--
-- col n
Table 3:
--col 1
--col 2
-- col 3
Now i Have to move data to table 3 into destination DB getting all the records which pass a join on table1 and table2 on cloumns 1 ,2 and 3 ..
I have only read access on the the Source DB.. pls let mw know how i can solve this scenario in SSIS.Thanks and Regards,Raja Tirumala Rao
View 3 Replies
View Related